blob: 2d1ec243c029232b7d9d80a019944b01a7339e8c [file] [log] [blame]
Meng Wang61af6842018-09-10 17:47:55 +08001// SPDX-License-Identifier: GPL-2.0
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
41#ifndef CONFIG_DOLBY_DAP
42#undef DOLBY_ADM_COPP_TOPOLOGY_ID
43#define DOLBY_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFE
44#endif
45
46#ifndef CONFIG_DOLBY_DS2
47#undef DS2_ADM_COPP_TOPOLOGY_ID
48#define DS2_ADM_COPP_TOPOLOGY_ID 0xFFFFFFFF
49#endif
50
51static struct mutex routing_lock;
52
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053053static struct cal_type_data *cal_data[MAX_ROUTING_CAL_TYPES];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053054
55static int fm_switch_enable;
56static int hfp_switch_enable;
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080057static int a2dp_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053058static int int0_mi2s_switch_enable;
59static int int4_mi2s_switch_enable;
60static int pri_mi2s_switch_enable;
61static int sec_mi2s_switch_enable;
62static int tert_mi2s_switch_enable;
63static int quat_mi2s_switch_enable;
Rohit Kumara5077932017-09-10 22:05:05 +053064static int quin_mi2s_switch_enable;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053065static int fm_pcmrx_switch_enable;
66static int usb_switch_enable;
67static int lsm_port_index;
68static int slim0_rx_aanc_fb_port;
69static int msm_route_ec_ref_rx;
70static int msm_ec_ref_ch = 4;
71static int msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
72static int msm_ec_ref_sampling_rate = 48000;
73static uint32_t voc_session_id = ALL_SESSION_VSID;
74static int msm_route_ext_ec_ref;
75static bool is_custom_stereo_on;
76static bool is_ds2_on;
77static bool swap_ch;
Sudheer Papothic07b37a2018-05-04 05:56:47 +053078static int aanc_level;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053079
80#define WEIGHT_0_DB 0x4000
81/* all the FEs which can support channel mixer */
82static struct msm_pcm_channel_mixer channel_mixer[MSM_FRONTEND_DAI_MM_SIZE];
83/* input BE for each FE */
84static int channel_input[MSM_FRONTEND_DAI_MM_SIZE][ADM_MAX_CHANNELS];
85
86enum {
87 MADNONE,
88 MADAUDIO,
89 MADBEACON,
90 MADULTRASOUND,
91 MADSWAUDIO,
92};
93
94#define ADM_LSM_PORT_INDEX 9
95
96#define SLIMBUS_0_TX_TEXT "SLIMBUS_0_TX"
97#define SLIMBUS_1_TX_TEXT "SLIMBUS_1_TX"
98#define SLIMBUS_2_TX_TEXT "SLIMBUS_2_TX"
99#define SLIMBUS_3_TX_TEXT "SLIMBUS_3_TX"
100#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
101#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
102#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
103#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
104#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
105#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +0530106#define VA_CDC_DMA_TX_0_TEXT "VA_CDC_DMA_TX_0"
107#define VA_CDC_DMA_TX_1_TEXT "VA_CDC_DMA_TX_1"
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530108#define TX_CDC_DMA_TX_3_TEXT "TX_CDC_DMA_TX_3"
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530109#define QUIN_TDM_TX_TEXT "QUIN_TDM_TX_0"
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530110
111#define LSM_FUNCTION_TEXT "LSM Function"
112static const char * const lsm_port_text[] = {
113 "None",
114 SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
115 SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
116 TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
Aditya Bavanarie9454c62018-08-23 23:45:20 +0530117 INT3_MI2S_TX_TEXT, VA_CDC_DMA_TX_0_TEXT, VA_CDC_DMA_TX_1_TEXT,
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +0530118 TX_CDC_DMA_TX_3_TEXT, QUIN_TDM_TX_TEXT
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530119};
120
121struct msm_pcm_route_bdai_pp_params {
122 u16 port_id; /* AFE port ID */
123 unsigned long pp_params_config;
124 bool mute_on;
125 int latency;
126};
127
128static struct msm_pcm_route_bdai_pp_params
129 msm_bedais_pp_params[MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX] = {
130 {HDMI_RX, 0, 0, 0},
131 {DISPLAY_PORT_RX, 0, 0, 0},
132};
133
134/*
135 * The be_dai_name_table is passed to HAL so that it can specify the
136 * BE ID for the BE it wants to enable based on the name. Thus there
137 * is a matching table and structure in HAL that need to be updated
138 * if any changes to these are made.
139 */
140struct msm_pcm_route_bdai_name {
141 unsigned int be_id;
142 char be_name[LPASS_BE_NAME_MAX_LENGTH];
143};
144static struct msm_pcm_route_bdai_name be_dai_name_table[MSM_BACKEND_DAI_MAX];
145
146static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
147 int fe_id);
148
Vikram Panduranga6e55ad82018-03-14 13:56:18 -0700149static void msm_routing_load_topology(size_t data_size, void *data);
150static void msm_routing_unload_topology(uint32_t topology_id);
151
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530152static int msm_routing_get_bit_width(unsigned int format)
153{
154 int bit_width;
155
156 switch (format) {
157 case SNDRV_PCM_FORMAT_S32_LE:
158 bit_width = 32;
159 break;
160 case SNDRV_PCM_FORMAT_S24_LE:
161 case SNDRV_PCM_FORMAT_S24_3LE:
162 bit_width = 24;
163 break;
164 case SNDRV_PCM_FORMAT_S16_LE:
165 default:
166 bit_width = 16;
167 }
168 return bit_width;
169}
170
171static bool msm_is_resample_needed(int input_sr, int output_sr)
172{
173 bool rc = false;
174
175 if (input_sr != output_sr)
176 rc = true;
177
178 pr_debug("perform resampling (%s) for copp rate (%d)afe rate (%d)",
179 (rc ? "oh yes" : "not really"),
180 input_sr, output_sr);
181
182 return rc;
183}
184
185static void msm_pcm_routing_cfg_pp(int port_id, int copp_idx, int topology,
186 int channels)
187{
188 int rc = 0;
189
190 switch (topology) {
191 case SRS_TRUMEDIA_TOPOLOGY_ID:
192 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
193 msm_dts_srs_tm_init(port_id, copp_idx);
194 break;
195 case DS2_ADM_COPP_TOPOLOGY_ID:
196 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY %d\n",
197 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
198 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
199 is_custom_stereo_on);
200 if (rc < 0)
201 pr_err("%s: DS2 topo_id 0x%x, port %d, CS %d rc %d\n",
202 __func__, topology, port_id,
203 is_custom_stereo_on, rc);
204 break;
205 case DOLBY_ADM_COPP_TOPOLOGY_ID:
206 if (is_ds2_on) {
207 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY\n", __func__);
208 rc = msm_ds2_dap_init(port_id, copp_idx, channels,
209 is_custom_stereo_on);
210 if (rc < 0)
211 pr_err("%s:DS2 topo_id 0x%x, port %d, rc %d\n",
212 __func__, topology, port_id, rc);
213 } else {
214 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
215 rc = msm_dolby_dap_init(port_id, copp_idx, channels,
216 is_custom_stereo_on);
217 if (rc < 0)
218 pr_err("%s: DS1 topo_id 0x%x, port %d, rc %d\n",
219 __func__, topology, port_id, rc);
220 }
221 break;
222 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
223 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
224 rc = msm_qti_pp_asphere_init(port_id, copp_idx);
225 if (rc < 0)
226 pr_err("%s: topo_id 0x%x, port %d, copp %d, rc %d\n",
227 __func__, topology, port_id, copp_idx, rc);
228 break;
229 default:
230 /* custom topology specific feature param handlers */
231 break;
232 }
233}
234
235static void msm_pcm_routing_deinit_pp(int port_id, int topology)
236{
237 switch (topology) {
238 case SRS_TRUMEDIA_TOPOLOGY_ID:
239 pr_debug("%s: SRS_TRUMEDIA_TOPOLOGY_ID\n", __func__);
240 msm_dts_srs_tm_deinit(port_id);
241 break;
242 case DS2_ADM_COPP_TOPOLOGY_ID:
243 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID %d\n",
244 __func__, DS2_ADM_COPP_TOPOLOGY_ID);
245 msm_ds2_dap_deinit(port_id);
246 break;
247 case DOLBY_ADM_COPP_TOPOLOGY_ID:
248 if (is_ds2_on) {
249 pr_debug("%s: DS2_ADM_COPP_TOPOLOGY_ID\n", __func__);
250 msm_ds2_dap_deinit(port_id);
251 } else {
252 pr_debug("%s: DOLBY_ADM_COPP_TOPOLOGY_ID\n", __func__);
253 msm_dolby_dap_deinit(port_id);
254 }
255 break;
256 case ADM_CMD_COPP_OPEN_TOPOLOGY_ID_AUDIOSPHERE:
257 pr_debug("%s: TOPOLOGY_ID_AUDIOSPHERE\n", __func__);
258 msm_qti_pp_asphere_deinit(port_id);
259 break;
260 default:
261 /* custom topology specific feature deinit handlers */
262 break;
263 }
264}
265
266static void msm_pcm_routng_cfg_matrix_map_pp(struct route_payload payload,
267 int path_type, int perf_mode)
268{
269 int itr = 0, rc = 0;
270
271 if ((path_type == ADM_PATH_PLAYBACK) &&
272 (perf_mode == LEGACY_PCM_MODE) &&
273 is_custom_stereo_on) {
274 for (itr = 0; itr < payload.num_copps; itr++) {
275 if ((payload.port_id[itr] != SLIMBUS_0_RX) &&
276 (payload.port_id[itr] != RT_PROXY_PORT_001_RX)) {
277 continue;
278 }
279
280 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd(
281 payload.port_id[itr],
282 payload.copp_idx[itr],
283 payload.session_id,
284 Q14_GAIN_ZERO_POINT_FIVE,
285 Q14_GAIN_ZERO_POINT_FIVE,
286 Q14_GAIN_ZERO_POINT_FIVE,
287 Q14_GAIN_ZERO_POINT_FIVE);
288 if (rc < 0)
289 pr_err("%s: err setting custom stereo\n",
290 __func__);
291 }
292 }
293}
294
295#define SLIMBUS_EXTPROC_RX AFE_PORT_INVALID
296struct msm_pcm_routing_bdai_data msm_bedais[MSM_BACKEND_DAI_MAX] = {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530297 { PRIMARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_RX},
298 { PRIMARY_I2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_PRI_I2S_TX},
299 { SLIMBUS_0_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_RX},
300 { SLIMBUS_0_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_0_TX},
301 { HDMI_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_HDMI},
302 { INT_BT_SCO_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_RX},
303 { INT_BT_SCO_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_BT_SCO_TX},
304 { INT_FM_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_RX},
305 { INT_FM_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_INT_FM_TX},
306 { RT_PROXY_PORT_001_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530307 LPASS_BE_AFE_PCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530308 { RT_PROXY_PORT_001_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530309 LPASS_BE_AFE_PCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530310 { AFE_PORT_ID_PRIMARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530311 LPASS_BE_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530312 { AFE_PORT_ID_PRIMARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530313 LPASS_BE_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530314 { VOICE_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530315 LPASS_BE_VOICE_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530316 { VOICE2_PLAYBACK_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530317 LPASS_BE_VOICE2_PLAYBACK_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530318 { VOICE_RECORD_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530319 LPASS_BE_INCALL_RECORD_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530320 { VOICE_RECORD_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530321 LPASS_BE_INCALL_RECORD_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530322 { MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_RX},
323 { MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_MI2S_TX},
324 { SECONDARY_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SEC_I2S_RX},
325 { SLIMBUS_1_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_RX},
326 { SLIMBUS_1_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_1_TX},
327 { SLIMBUS_2_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_RX},
328 { SLIMBUS_2_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_2_TX},
329 { SLIMBUS_3_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_RX},
330 { SLIMBUS_3_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_3_TX},
331 { SLIMBUS_4_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_RX},
332 { SLIMBUS_4_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_4_TX},
333 { SLIMBUS_5_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_RX},
334 { SLIMBUS_5_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_5_TX},
335 { SLIMBUS_6_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_RX},
336 { SLIMBUS_6_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_6_TX},
337 { SLIMBUS_7_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_RX},
338 { SLIMBUS_7_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_7_TX},
339 { SLIMBUS_8_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_RX},
340 { SLIMBUS_8_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_8_TX},
341 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_RX},
342 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_TX},
343 { SLIMBUS_EXTPROC_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_STUB_1_TX},
344 { AFE_PORT_ID_QUATERNARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530345 LPASS_BE_QUAT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530346 { AFE_PORT_ID_QUATERNARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530347 LPASS_BE_QUAT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530348 { AFE_PORT_ID_SECONDARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530349 LPASS_BE_SEC_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530350 { AFE_PORT_ID_SECONDARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530351 LPASS_BE_SEC_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530352 { AFE_PORT_ID_PRIMARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530353 LPASS_BE_PRI_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530354 { AFE_PORT_ID_PRIMARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530355 LPASS_BE_PRI_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530356 { AFE_PORT_ID_TERTIARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530357 LPASS_BE_TERT_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530358 { AFE_PORT_ID_TERTIARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530359 LPASS_BE_TERT_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530360 { AUDIO_PORT_ID_I2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530361 LPASS_BE_AUDIO_I2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530362 { AFE_PORT_ID_SECONDARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530363 LPASS_BE_SEC_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530364 { AFE_PORT_ID_SECONDARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530365 LPASS_BE_SEC_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530366 { AFE_PORT_ID_PRIMARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200367 LPASS_BE_PRI_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530368 { AFE_PORT_ID_SECONDARY_MI2S_RX_SD1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530369 LPASS_BE_SEC_MI2S_RX_SD1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530370 { AFE_PORT_ID_QUINARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530371 LPASS_BE_QUIN_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530372 { AFE_PORT_ID_QUINARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530373 LPASS_BE_QUIN_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530374 { AFE_PORT_ID_SENARY_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530375 LPASS_BE_SENARY_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530376 { AFE_PORT_ID_PRIMARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530377 LPASS_BE_PRI_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530378 { AFE_PORT_ID_PRIMARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530379 LPASS_BE_PRI_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530380 { AFE_PORT_ID_PRIMARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530381 LPASS_BE_PRI_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530382 { AFE_PORT_ID_PRIMARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530383 LPASS_BE_PRI_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530384 { AFE_PORT_ID_PRIMARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530385 LPASS_BE_PRI_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530386 { AFE_PORT_ID_PRIMARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530387 LPASS_BE_PRI_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530388 { AFE_PORT_ID_PRIMARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530389 LPASS_BE_PRI_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530390 { AFE_PORT_ID_PRIMARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530391 LPASS_BE_PRI_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530392 { AFE_PORT_ID_PRIMARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530393 LPASS_BE_PRI_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530394 { AFE_PORT_ID_PRIMARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530395 LPASS_BE_PRI_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530396 { AFE_PORT_ID_PRIMARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530397 LPASS_BE_PRI_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530398 { AFE_PORT_ID_PRIMARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530399 LPASS_BE_PRI_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530400 { AFE_PORT_ID_PRIMARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530401 LPASS_BE_PRI_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530402 { AFE_PORT_ID_PRIMARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530403 LPASS_BE_PRI_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530404 { AFE_PORT_ID_PRIMARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530405 LPASS_BE_PRI_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530406 { AFE_PORT_ID_PRIMARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530407 LPASS_BE_PRI_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530408 { AFE_PORT_ID_SECONDARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530409 LPASS_BE_SEC_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530410 { AFE_PORT_ID_SECONDARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530411 LPASS_BE_SEC_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530412 { AFE_PORT_ID_SECONDARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530413 LPASS_BE_SEC_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530414 { AFE_PORT_ID_SECONDARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530415 LPASS_BE_SEC_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530416 { AFE_PORT_ID_SECONDARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530417 LPASS_BE_SEC_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530418 { AFE_PORT_ID_SECONDARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530419 LPASS_BE_SEC_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530420 { AFE_PORT_ID_SECONDARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530421 LPASS_BE_SEC_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530422 { AFE_PORT_ID_SECONDARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530423 LPASS_BE_SEC_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530424 { AFE_PORT_ID_SECONDARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530425 LPASS_BE_SEC_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530426 { AFE_PORT_ID_SECONDARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530427 LPASS_BE_SEC_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530428 { AFE_PORT_ID_SECONDARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530429 LPASS_BE_SEC_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530430 { AFE_PORT_ID_SECONDARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530431 LPASS_BE_SEC_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530432 { AFE_PORT_ID_SECONDARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530433 LPASS_BE_SEC_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530434 { AFE_PORT_ID_SECONDARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530435 LPASS_BE_SEC_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530436 { AFE_PORT_ID_SECONDARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530437 LPASS_BE_SEC_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530438 { AFE_PORT_ID_SECONDARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530439 LPASS_BE_SEC_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530440 { AFE_PORT_ID_TERTIARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530441 LPASS_BE_TERT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530442 { AFE_PORT_ID_TERTIARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530443 LPASS_BE_TERT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530444 { AFE_PORT_ID_TERTIARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530445 LPASS_BE_TERT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530446 { AFE_PORT_ID_TERTIARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530447 LPASS_BE_TERT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530448 { AFE_PORT_ID_TERTIARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530449 LPASS_BE_TERT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530450 { AFE_PORT_ID_TERTIARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530451 LPASS_BE_TERT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530452 { AFE_PORT_ID_TERTIARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530453 LPASS_BE_TERT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530454 { AFE_PORT_ID_TERTIARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530455 LPASS_BE_TERT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530456 { AFE_PORT_ID_TERTIARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530457 LPASS_BE_TERT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530458 { AFE_PORT_ID_TERTIARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530459 LPASS_BE_TERT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530460 { AFE_PORT_ID_TERTIARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530461 LPASS_BE_TERT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530462 { AFE_PORT_ID_TERTIARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530463 LPASS_BE_TERT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530464 { AFE_PORT_ID_TERTIARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530465 LPASS_BE_TERT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530466 { AFE_PORT_ID_TERTIARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530467 LPASS_BE_TERT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530468 { AFE_PORT_ID_TERTIARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530469 LPASS_BE_TERT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530470 { AFE_PORT_ID_TERTIARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530471 LPASS_BE_TERT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530472 { AFE_PORT_ID_QUATERNARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530473 LPASS_BE_QUAT_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530474 { AFE_PORT_ID_QUATERNARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530475 LPASS_BE_QUAT_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530476 { AFE_PORT_ID_QUATERNARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530477 LPASS_BE_QUAT_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530478 { AFE_PORT_ID_QUATERNARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530479 LPASS_BE_QUAT_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530480 { AFE_PORT_ID_QUATERNARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530481 LPASS_BE_QUAT_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530482 { AFE_PORT_ID_QUATERNARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530483 LPASS_BE_QUAT_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530484 { AFE_PORT_ID_QUATERNARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530485 LPASS_BE_QUAT_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530486 { AFE_PORT_ID_QUATERNARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530487 LPASS_BE_QUAT_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530488 { AFE_PORT_ID_QUATERNARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530489 LPASS_BE_QUAT_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530490 { AFE_PORT_ID_QUATERNARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530491 LPASS_BE_QUAT_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530492 { AFE_PORT_ID_QUATERNARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530493 LPASS_BE_QUAT_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530494 { AFE_PORT_ID_QUATERNARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530495 LPASS_BE_QUAT_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530496 { AFE_PORT_ID_QUATERNARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530497 LPASS_BE_QUAT_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530498 { AFE_PORT_ID_QUATERNARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530499 LPASS_BE_QUAT_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530500 { AFE_PORT_ID_QUATERNARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530501 LPASS_BE_QUAT_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530502 { AFE_PORT_ID_QUATERNARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530503 LPASS_BE_QUAT_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530504 { AFE_PORT_ID_QUINARY_TDM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530505 LPASS_BE_QUIN_TDM_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530506 { AFE_PORT_ID_QUINARY_TDM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530507 LPASS_BE_QUIN_TDM_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530508 { AFE_PORT_ID_QUINARY_TDM_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530509 LPASS_BE_QUIN_TDM_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530510 { AFE_PORT_ID_QUINARY_TDM_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530511 LPASS_BE_QUIN_TDM_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530512 { AFE_PORT_ID_QUINARY_TDM_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530513 LPASS_BE_QUIN_TDM_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530514 { AFE_PORT_ID_QUINARY_TDM_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530515 LPASS_BE_QUIN_TDM_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530516 { AFE_PORT_ID_QUINARY_TDM_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530517 LPASS_BE_QUIN_TDM_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530518 { AFE_PORT_ID_QUINARY_TDM_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530519 LPASS_BE_QUIN_TDM_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530520 { AFE_PORT_ID_QUINARY_TDM_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530521 LPASS_BE_QUIN_TDM_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530522 { AFE_PORT_ID_QUINARY_TDM_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530523 LPASS_BE_QUIN_TDM_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530524 { AFE_PORT_ID_QUINARY_TDM_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530525 LPASS_BE_QUIN_TDM_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530526 { AFE_PORT_ID_QUINARY_TDM_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530527 LPASS_BE_QUIN_TDM_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530528 { AFE_PORT_ID_QUINARY_TDM_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530529 LPASS_BE_QUIN_TDM_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530530 { AFE_PORT_ID_QUINARY_TDM_TX_6, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530531 LPASS_BE_QUIN_TDM_TX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530532 { AFE_PORT_ID_QUINARY_TDM_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530533 LPASS_BE_QUIN_TDM_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530534 { AFE_PORT_ID_QUINARY_TDM_TX_7, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530535 LPASS_BE_QUIN_TDM_TX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530536 { INT_BT_A2DP_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530537 LPASS_BE_INT_BT_A2DP_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530538 { AFE_PORT_ID_USB_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530539 LPASS_BE_USB_AUDIO_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530540 { AFE_PORT_ID_USB_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530541 LPASS_BE_USB_AUDIO_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530542 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530543 LPASS_BE_DISPLAY_PORT},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530544 { DISPLAY_PORT_RX, 0, {0}, {0}, 0, 0, 0, 0,
Karthikeyan Mani57550082018-05-03 18:43:58 -0700545 LPASS_BE_DISPLAY_PORT1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530546 { AFE_PORT_ID_TERTIARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530547 LPASS_BE_TERT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530548 { AFE_PORT_ID_TERTIARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530549 LPASS_BE_TERT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530550 { AFE_PORT_ID_QUATERNARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530551 LPASS_BE_QUAT_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530552 { AFE_PORT_ID_QUATERNARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530553 LPASS_BE_QUAT_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530554 { AFE_PORT_ID_QUINARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530555 LPASS_BE_QUIN_AUXPCM_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530556 { AFE_PORT_ID_QUINARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
Rohit Kumara5077932017-09-10 22:05:05 +0530557 LPASS_BE_QUIN_AUXPCM_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530558 { AFE_PORT_ID_INT0_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530559 LPASS_BE_INT0_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530560 { AFE_PORT_ID_INT0_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530561 LPASS_BE_INT0_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530562 { AFE_PORT_ID_INT1_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530563 LPASS_BE_INT1_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530564 { AFE_PORT_ID_INT1_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530565 LPASS_BE_INT1_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530566 { AFE_PORT_ID_INT2_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530567 LPASS_BE_INT2_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530568 { AFE_PORT_ID_INT2_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530569 LPASS_BE_INT2_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530570 { AFE_PORT_ID_INT3_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530571 LPASS_BE_INT3_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530572 { AFE_PORT_ID_INT3_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530573 LPASS_BE_INT3_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530574 { AFE_PORT_ID_INT4_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530575 LPASS_BE_INT4_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530576 { AFE_PORT_ID_INT4_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530577 LPASS_BE_INT4_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530578 { AFE_PORT_ID_INT5_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530579 LPASS_BE_INT5_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530580 { AFE_PORT_ID_INT5_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530581 LPASS_BE_INT5_MI2S_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530582 { AFE_PORT_ID_INT6_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530583 LPASS_BE_INT6_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530584 { AFE_PORT_ID_INT6_MI2S_TX, 0, {0}, {0}, 0, 0, 0, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530585 LPASS_BE_INT6_MI2S_TX},
Dieter Luecking70668fc2018-09-28 15:03:01 +0200586 { AFE_PORT_ID_SENARY_PCM_RX, 0, {0}, {0}, 0, 0, 0, 0,
587 LPASS_BE_SEN_AUXPCM_RX},
588 { AFE_PORT_ID_SENARY_PCM_TX, 0, {0}, {0}, 0, 0, 0, 0,
589 LPASS_BE_SEN_AUXPCM_TX},
590 { AFE_PORT_ID_SENARY_MI2S_RX, 0, {0}, {0}, 0, 0, 0, 0,
591 LPASS_BE_SENARY_MI2S_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530592 { AFE_PORT_ID_WSA_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530593 LPASS_BE_WSA_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530594 { AFE_PORT_ID_WSA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530595 LPASS_BE_WSA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530596 { AFE_PORT_ID_WSA_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530597 LPASS_BE_WSA_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530598 { AFE_PORT_ID_WSA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530599 LPASS_BE_WSA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530600 { AFE_PORT_ID_WSA_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530601 LPASS_BE_WSA_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530602 { AFE_PORT_ID_VA_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530603 LPASS_BE_VA_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530604 { AFE_PORT_ID_VA_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +0530605 LPASS_BE_VA_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530606 { AFE_PORT_ID_RX_CODEC_DMA_RX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530607 LPASS_BE_RX_CDC_DMA_RX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530608 { AFE_PORT_ID_TX_CODEC_DMA_TX_0, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530609 LPASS_BE_TX_CDC_DMA_TX_0},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530610 { AFE_PORT_ID_RX_CODEC_DMA_RX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530611 LPASS_BE_RX_CDC_DMA_RX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530612 { AFE_PORT_ID_TX_CODEC_DMA_TX_1, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530613 LPASS_BE_TX_CDC_DMA_TX_1},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530614 { AFE_PORT_ID_RX_CODEC_DMA_RX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530615 LPASS_BE_RX_CDC_DMA_RX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530616 { AFE_PORT_ID_TX_CODEC_DMA_TX_2, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530617 LPASS_BE_TX_CDC_DMA_TX_2},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530618 { AFE_PORT_ID_RX_CODEC_DMA_RX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530619 LPASS_BE_RX_CDC_DMA_RX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530620 { AFE_PORT_ID_TX_CODEC_DMA_TX_3, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530621 LPASS_BE_TX_CDC_DMA_TX_3},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530622 { AFE_PORT_ID_RX_CODEC_DMA_RX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530623 LPASS_BE_RX_CDC_DMA_RX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530624 { AFE_PORT_ID_TX_CODEC_DMA_TX_4, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530625 LPASS_BE_TX_CDC_DMA_TX_4},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530626 { AFE_PORT_ID_RX_CODEC_DMA_RX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530627 LPASS_BE_RX_CDC_DMA_RX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530628 { AFE_PORT_ID_TX_CODEC_DMA_TX_5, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530629 LPASS_BE_TX_CDC_DMA_TX_5},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530630 { AFE_PORT_ID_RX_CODEC_DMA_RX_6, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530631 LPASS_BE_RX_CDC_DMA_RX_6},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530632 { AFE_PORT_ID_RX_CODEC_DMA_RX_7, 0, {0}, {0}, 0, 0, 0, 0,
Aditya Bavanari1e84a932018-06-18 19:40:08 +0530633 LPASS_BE_RX_CDC_DMA_RX_7},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530634 { AFE_PORT_ID_PRIMARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200635 LPASS_BE_PRI_SPDIF_TX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530636 { AFE_PORT_ID_SECONDARY_SPDIF_RX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200637 LPASS_BE_SEC_SPDIF_RX},
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530638 { AFE_PORT_ID_SECONDARY_SPDIF_TX, 0, {0}, {0}, 0, 0, 0, 0,
Ralf Herzc8701f72018-06-20 11:37:35 +0200639 LPASS_BE_SEC_SPDIF_TX},
Surendar Karka3ef3d812018-09-28 18:52:35 +0530640 { SLIMBUS_9_RX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_RX},
641 { SLIMBUS_9_TX, 0, {0}, {0}, 0, 0, 0, 0, LPASS_BE_SLIMBUS_9_TX},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530642};
643
644/* Track ASM playback & capture sessions of DAI
645 * Track LSM listen sessions
646 */
647static struct msm_pcm_routing_fdai_data
648 fe_dai_map[MSM_FRONTEND_DAI_MAX][2] = {
649 /* MULTIMEDIA1 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530650 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
651 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530652 /* MULTIMEDIA2 */
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 /* MULTIMEDIA3 */
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 /* MULTIMEDIA4 */
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 /* MULTIMEDIA5 */
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 /* MULTIMEDIA6 */
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 /* MULTIMEDIA7*/
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 /* MULTIMEDIA8 */
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 /* MULTIMEDIA9 */
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 /* MULTIMEDIA10 */
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 /* MULTIMEDIA11 */
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 /* MULTIMEDIA12 */
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 /* MULTIMEDIA13 */
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 /* MULTIMEDIA14 */
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 /* MULTIMEDIA15 */
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 /* MULTIMEDIA16 */
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 /* MULTIMEDIA17 */
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 /* MULTIMEDIA18 */
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 /* MULTIMEDIA19 */
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 /* MULTIMEDIA20 */
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} },
Derek Chen07c6d1c2018-07-05 10:39:25 -0700709 /* MULTIMEDIA21 */
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} },
Surendar Karkac1cde372018-08-14 18:56:24 +0530712 /* MULTIMEDIA26 */
713 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
714 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
715 /* MULTIMEDIA27 */
716 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
717 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530718 /* MULTIMEDIA28 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530719 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
720 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +0530721 /* MULTIMEDIA29 */
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +0530722 {{0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM},
723 {0, INVALID_SESSION, LEGACY_PCM_MODE, {NULL, NULL}, LEGACY_PCM} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530724 /* VOIP */
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 /* AFE_RX */
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_TX */
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 /* VOICE_STUB */
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 /* DTMF_RX */
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 /* QCHAT */
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 /* VOLTE_STUB */
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 /* LSM1 */
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 /* LSM2 */
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 /* LSM3 */
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 /* LSM4 */
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 /* LSM5 */
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 /* LSM6 */
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 /* LSM7 */
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 /* LSM8 */
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 /* VOICE2_STUB */
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 /* VOICEMMODE1 */
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 /* VOICEMMODE2 */
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};
779
780static unsigned long session_copp_map[MSM_FRONTEND_DAI_MAX][2]
781 [MSM_BACKEND_DAI_MAX];
782static struct msm_pcm_routing_app_type_data app_type_cfg[MAX_APP_TYPES];
783static struct msm_pcm_routing_app_type_data lsm_app_type_cfg[MAX_APP_TYPES];
784static struct msm_pcm_stream_app_type_cfg
785 fe_dai_app_type_cfg[MSM_FRONTEND_DAI_MAX][2][MSM_BACKEND_DAI_MAX];
786
787static int last_be_id_configured[MSM_FRONTEND_DAI_MAX][MAX_SESSION_TYPES];
788
Florian Pfister522073c2018-09-26 15:39:15 +0200789/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530790void msm_pcm_routing_get_bedai_info(int be_idx,
791 struct msm_pcm_routing_bdai_data *be_dai)
792{
793 if (be_idx >= 0 && be_idx < MSM_BACKEND_DAI_MAX)
794 memcpy(be_dai, &msm_bedais[be_idx],
795 sizeof(struct msm_pcm_routing_bdai_data));
796}
797
Florian Pfister522073c2018-09-26 15:39:15 +0200798/* The caller of this should acquire routing lock */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530799void msm_pcm_routing_get_fedai_info(int fe_idx, int sess_type,
800 struct msm_pcm_routing_fdai_data *fe_dai)
801{
802 if ((sess_type == SESSION_TYPE_TX) || (sess_type == SESSION_TYPE_RX))
803 memcpy(fe_dai, &fe_dai_map[fe_idx][sess_type],
804 sizeof(struct msm_pcm_routing_fdai_data));
805}
806
807void msm_pcm_routing_acquire_lock(void)
808{
809 mutex_lock(&routing_lock);
810}
811
812void msm_pcm_routing_release_lock(void)
813{
814 mutex_unlock(&routing_lock);
815}
816
817static int msm_pcm_routing_get_app_type_idx(int app_type)
818{
819 int idx;
820
821 pr_debug("%s: app_type: %d\n", __func__, app_type);
822 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
823 if (app_type_cfg[idx].app_type == app_type)
824 return idx;
825 }
826 pr_info("%s: App type not available, fallback to default\n", __func__);
827 return 0;
828}
829
830static int msm_pcm_routing_get_lsm_app_type_idx(int app_type)
831{
832 int idx;
833
834 pr_debug("%s: app_type: %d\n", __func__, app_type);
835 for (idx = 0; idx < MAX_APP_TYPES; idx++) {
836 if (lsm_app_type_cfg[idx].app_type == app_type)
837 return idx;
838 }
839 pr_debug("%s: App type not available, fallback to default\n", __func__);
840 return 0;
841}
842
843static bool is_mm_lsm_fe_id(int fe_id)
844{
845 bool rc = true;
846
847 if (fe_id > MSM_FRONTEND_DAI_MM_MAX_ID &&
848 ((fe_id < MSM_FRONTEND_DAI_LSM1) ||
849 (fe_id > MSM_FRONTEND_DAI_LSM8))) {
850 rc = false;
851 }
852 return rc;
853}
854
Bhalchandra Gajareeed46bd2018-05-15 16:48:07 -0700855/*
856 * msm_pcm_routing_send_chmix_cfg:
857 * send the channel mixer command to mix the input channels
858 * into output channels.
859 *
860 * @fe_id: front end id
861 * @ip_channel_cnt: input channel count
862 * @op_channel_cnt: output channel count
863 * @ch_wght_coeff: channel weight co-efficients for channel mixing
864 * @session_type: indicates session is of type TX or RX
865 * @stream_type: indicates either Audio or Listen stream type
866 */
867int msm_pcm_routing_send_chmix_cfg(int fe_id, int ip_channel_cnt,
868 int op_channel_cnt, int *ch_wght_coeff,
869 int session_type, int stream_type)
870{
871
872 int rc = 0, idx = 0;
873 int be_index = 0, port_id;
874 unsigned int session_id = 0;
875
876 pr_debug("%s:fe_id[%d] ip_ch[%d] op_ch[%d] sess_type [%d], stream_type[%d]",
877 __func__, fe_id, ip_channel_cnt, op_channel_cnt, session_type,
878 stream_type);
879 if (!is_mm_lsm_fe_id(fe_id)) {
880 /* bad ID assigned in machine driver */
881 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
882 return -EINVAL;
883 }
884
885 if (ch_wght_coeff == NULL) {
886 pr_err("%s: Null channel weightage coefficients passed\n",
887 __func__);
888 return -EINVAL;
889 }
890
891 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
892 port_id = msm_bedais[be_index].port_id;
893 if (!msm_bedais[be_index].active ||
894 !test_bit(fe_id, &msm_bedais[be_index].fe_sessions[0]))
895 continue;
896
897 session_id = fe_dai_map[fe_id][session_type].strm_id;
898
899 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
900 unsigned long copp =
901 session_copp_map[fe_id][session_type][be_index];
902 if (!test_bit(idx, &copp))
903 continue;
904 msm_qti_pp_send_chmix_cfg_cmd(port_id, idx,
905 session_id, ip_channel_cnt,
906 op_channel_cnt, ch_wght_coeff,
907 session_type, stream_type);
908 if (rc < 0)
909 pr_err("%s: err setting channel mix config\n",
910 __func__);
911 }
912 }
913
914 return 0;
915}
916EXPORT_SYMBOL(msm_pcm_routing_send_chmix_cfg);
917
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +0530918int msm_pcm_routing_reg_stream_app_type_cfg(
919 int fedai_id, int session_type, int be_id,
920 struct msm_pcm_stream_app_type_cfg *cfg_data)
921{
922 int ret = 0;
923
924 if (cfg_data == NULL) {
925 pr_err("%s: Received NULL pointer for cfg_data\n", __func__);
926 ret = -EINVAL;
927 goto done;
928 }
929
930 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
931 __func__, fedai_id, session_type, be_id,
932 cfg_data->app_type, cfg_data->acdb_dev_id,
933 cfg_data->sample_rate);
934
935 if (!is_mm_lsm_fe_id(fedai_id)) {
936 pr_err("%s: Invalid machine driver ID %d\n",
937 __func__, fedai_id);
938 ret = -EINVAL;
939 goto done;
940 }
941 if (session_type != SESSION_TYPE_RX &&
942 session_type != SESSION_TYPE_TX) {
943 pr_err("%s: Invalid session type %d\n",
944 __func__, session_type);
945 ret = -EINVAL;
946 goto done;
947 }
948 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
949 pr_err("%s: Received out of bounds be_id %d\n",
950 __func__, be_id);
951 ret = -EINVAL;
952 goto done;
953 }
954
955 fe_dai_app_type_cfg[fedai_id][session_type][be_id] = *cfg_data;
956
957 /*
958 * Store the BE ID of the configuration information set as the latest so
959 * the get mixer control knows what to return.
960 */
961 last_be_id_configured[fedai_id][session_type] = be_id;
962
963done:
964 return ret;
965}
966EXPORT_SYMBOL(msm_pcm_routing_reg_stream_app_type_cfg);
967
968/**
969 * msm_pcm_routing_get_stream_app_type_cfg
970 *
971 * Receives fedai_id, session_type, be_id, and populates app_type,
972 * acdb_dev_id, & sample rate. Returns 0 on success. On failure returns
973 * -EINVAL and does not alter passed values.
974 *
975 * fedai_id - Passed value, front end ID for which app type config is wanted
976 * session_type - Passed value, session type for which app type config
977 * is wanted
978 * be_id - Returned value, back end device id the app type config data is for
979 * cfg_data - Returned value, configuration data used by app type config
980 */
981int msm_pcm_routing_get_stream_app_type_cfg(
982 int fedai_id, int session_type, int *bedai_id,
983 struct msm_pcm_stream_app_type_cfg *cfg_data)
984{
985 int be_id;
986 int ret = 0;
987
988 if (bedai_id == NULL) {
989 pr_err("%s: Received NULL pointer for backend ID\n", __func__);
990 ret = -EINVAL;
991 goto done;
992 } else if (cfg_data == NULL) {
993 pr_err("%s: NULL pointer sent for cfg_data\n", __func__);
994 ret = -EINVAL;
995 goto done;
996 } else if (!is_mm_lsm_fe_id(fedai_id)) {
997 pr_err("%s: Invalid FE ID %d\n", __func__, fedai_id);
998 ret = -EINVAL;
999 goto done;
1000 } else if (session_type != SESSION_TYPE_RX &&
1001 session_type != SESSION_TYPE_TX) {
1002 pr_err("%s: Invalid session type %d\n", __func__, session_type);
1003 ret = -EINVAL;
1004 goto done;
1005 }
1006
1007 be_id = last_be_id_configured[fedai_id][session_type];
1008 if (be_id < 0 || be_id >= MSM_BACKEND_DAI_MAX) {
1009 pr_err("%s: Invalid BE ID %d\n", __func__, be_id);
1010 ret = -EINVAL;
1011 goto done;
1012 }
1013
1014 *bedai_id = be_id;
1015 *cfg_data = fe_dai_app_type_cfg[fedai_id][session_type][be_id];
1016 pr_debug("%s: fedai_id %d, session_type %d, be_id %d, app_type %d, acdb_dev_id %d, sample_rate %d\n",
1017 __func__, fedai_id, session_type, *bedai_id,
1018 cfg_data->app_type, cfg_data->acdb_dev_id,
1019 cfg_data->sample_rate);
1020done:
1021 return ret;
1022}
1023EXPORT_SYMBOL(msm_pcm_routing_get_stream_app_type_cfg);
1024
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301025static struct cal_block_data *msm_routing_find_topology_by_path(int path,
1026 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301027{
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301028 struct list_head *ptr, *next;
1029 struct cal_block_data *cal_block = NULL;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301030 pr_debug("%s\n", __func__);
1031
1032 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301033 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301034
1035 cal_block = list_entry(ptr,
1036 struct cal_block_data, list);
1037
Vikram Panduranga770b8382017-09-27 12:17:36 -07001038 if (cal_utils_is_cal_stale(cal_block))
1039 continue;
1040
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301041 if (((struct audio_cal_info_adm_top *)cal_block
1042 ->cal_info)->path == path) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301043 return cal_block;
1044 }
1045 }
1046 pr_debug("%s: Can't find topology for path %d\n", __func__, path);
1047 return NULL;
1048}
1049
1050static struct cal_block_data *msm_routing_find_topology(int path,
1051 int app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301052 int acdb_id,
1053 int cal_index)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301054{
1055 struct list_head *ptr, *next;
1056 struct cal_block_data *cal_block = NULL;
1057 struct audio_cal_info_adm_top *cal_info;
1058
1059 pr_debug("%s\n", __func__);
1060
1061 list_for_each_safe(ptr, next,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301062 &cal_data[cal_index]->cal_blocks) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301063
1064 cal_block = list_entry(ptr,
1065 struct cal_block_data, list);
1066
Vikram Panduranga770b8382017-09-27 12:17:36 -07001067 if (cal_utils_is_cal_stale(cal_block))
1068 continue;
1069
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301070 cal_info = (struct audio_cal_info_adm_top *)
1071 cal_block->cal_info;
1072 if ((cal_info->path == path) &&
1073 (cal_info->app_type == app_type) &&
1074 (cal_info->acdb_id == acdb_id)) {
1075 return cal_block;
1076 }
1077 }
1078 pr_debug("%s: Can't find topology for path %d, app %d, acdb_id %d defaulting to search by path\n",
1079 __func__, path, app_type, acdb_id);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001080 return msm_routing_find_topology_by_path(path, cal_index);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301081}
1082
Vikram Panduranga770b8382017-09-27 12:17:36 -07001083/*
1084 * Retrieving cal_block will mark cal_block as stale.
1085 * Hence it cannot be reused or resent unless the flag
1086 * is reset.
1087 */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301088static int msm_routing_get_adm_topology(int fedai_id, int session_type,
1089 int be_id)
1090{
1091 int topology = NULL_COPP_TOPOLOGY;
1092 struct cal_block_data *cal_block = NULL;
1093 int app_type = 0, acdb_dev_id = 0;
1094
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301095 pr_debug("%s: fedai_id %d, session_type %d, be_id %d\n",
1096 __func__, fedai_id, session_type, be_id);
1097
1098 if (cal_data == NULL)
1099 goto done;
1100
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301101 app_type = fe_dai_app_type_cfg[fedai_id][session_type][be_id].app_type;
1102 acdb_dev_id =
1103 fe_dai_app_type_cfg[fedai_id][session_type][be_id].acdb_dev_id;
1104
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301105 mutex_lock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301106 cal_block = msm_routing_find_topology(session_type, app_type,
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301107 acdb_dev_id,
1108 ADM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001109 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301110 topology = ((struct audio_cal_info_adm_top *)
1111 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001112 cal_utils_mark_cal_used(cal_block);
1113 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1114 } else {
1115 mutex_unlock(&cal_data[ADM_TOPOLOGY_CAL_TYPE_IDX]->lock);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301116
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301117 pr_debug("%s: Check for LSM topology\n", __func__);
1118 mutex_lock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1119 cal_block = msm_routing_find_topology(session_type, app_type,
1120 acdb_dev_id,
1121 ADM_LSM_TOPOLOGY_CAL_TYPE_IDX);
Vikram Panduranga770b8382017-09-27 12:17:36 -07001122 if (cal_block != NULL) {
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301123 topology = ((struct audio_cal_info_adm_top *)
1124 cal_block->cal_info)->topology;
Vikram Panduranga770b8382017-09-27 12:17:36 -07001125 cal_utils_mark_cal_used(cal_block);
1126 }
Aditya Bavanari2a627ae2017-11-21 20:24:53 +05301127 mutex_unlock(&cal_data[ADM_LSM_TOPOLOGY_CAL_TYPE_IDX]->lock);
1128 }
1129
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301130done:
1131 pr_debug("%s: Using topology %d\n", __func__, topology);
1132 return topology;
1133}
1134
1135static uint8_t is_be_dai_extproc(int be_dai)
1136{
1137 if (be_dai == MSM_BACKEND_DAI_EXTPROC_RX ||
1138 be_dai == MSM_BACKEND_DAI_EXTPROC_TX ||
1139 be_dai == MSM_BACKEND_DAI_EXTPROC_EC_TX)
1140 return 1;
1141 else
1142 return 0;
1143}
1144
1145static void msm_pcm_routing_build_matrix(int fedai_id, int sess_type,
1146 int path_type, int perf_mode,
1147 uint32_t passthr_mode)
1148{
1149 int i, port_type, j, num_copps = 0;
1150 struct route_payload payload;
1151
1152 port_type = ((path_type == ADM_PATH_PLAYBACK ||
1153 path_type == ADM_PATH_COMPRESSED_RX) ?
1154 MSM_AFE_PORT_TYPE_RX : MSM_AFE_PORT_TYPE_TX);
1155
1156 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1157 if (!is_be_dai_extproc(i) &&
1158 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1159 (msm_bedais[i].active) &&
1160 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1161 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1162 unsigned long copp =
1163 session_copp_map[fedai_id][sess_type][i];
1164 if (test_bit(j, &copp)) {
1165 payload.port_id[num_copps] =
1166 msm_bedais[i].port_id;
1167 payload.copp_idx[num_copps] = j;
1168 payload.app_type[num_copps] =
1169 fe_dai_app_type_cfg
1170 [fedai_id][sess_type][i]
1171 .app_type;
1172 payload.acdb_dev_id[num_copps] =
1173 fe_dai_app_type_cfg
1174 [fedai_id][sess_type][i]
1175 .acdb_dev_id;
1176 payload.sample_rate[num_copps] =
1177 fe_dai_app_type_cfg
1178 [fedai_id][sess_type][i]
1179 .sample_rate;
1180 num_copps++;
1181 }
1182 }
1183 }
1184 }
1185
1186 if (num_copps) {
1187 payload.num_copps = num_copps;
1188 payload.session_id = fe_dai_map[fedai_id][sess_type].strm_id;
1189 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1190 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1191 }
1192}
1193
1194void msm_pcm_routing_reg_psthr_stream(int fedai_id, int dspst_id,
1195 int stream_type)
1196{
1197 int i, session_type, path_type, port_type;
1198 u32 mode = 0;
1199
1200 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1201 /* bad ID assigned in machine driver */
1202 pr_err("%s: bad MM ID\n", __func__);
1203 return;
1204 }
1205
1206 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1207 session_type = SESSION_TYPE_RX;
1208 path_type = ADM_PATH_PLAYBACK;
1209 port_type = MSM_AFE_PORT_TYPE_RX;
1210 } else {
1211 session_type = SESSION_TYPE_TX;
1212 path_type = ADM_PATH_LIVE_REC;
1213 port_type = MSM_AFE_PORT_TYPE_TX;
1214 }
1215
1216 mutex_lock(&routing_lock);
1217
1218 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1219 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1220 if (!is_be_dai_extproc(i) &&
1221 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1222 (msm_bedais[i].active) &&
1223 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1224 mode = afe_get_port_type(msm_bedais[i].port_id);
1225 adm_connect_afe_port(mode, dspst_id,
1226 msm_bedais[i].port_id);
1227 break;
1228 }
1229 }
1230 mutex_unlock(&routing_lock);
1231}
1232
1233static bool route_check_fe_id_adm_support(int fe_id)
1234{
1235 bool rc = true;
1236
1237 if ((fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1238 (fe_id <= MSM_FRONTEND_DAI_LSM8)) {
1239 /* fe id is listen while port is set to afe */
1240 if (lsm_port_index != ADM_LSM_PORT_INDEX) {
1241 pr_debug("%s: fe_id %d, lsm mux slim port %d\n",
1242 __func__, fe_id, lsm_port_index);
1243 rc = false;
1244 }
1245 }
1246
1247 return rc;
1248}
1249
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001250/*
1251 * msm_pcm_routing_get_pp_ch_cnt:
1252 * Read the processed channel count
1253 *
1254 * @fe_id: Front end ID
1255 * @session_type: Inidicates RX or TX session type
1256 */
1257int msm_pcm_routing_get_pp_ch_cnt(int fe_id, int session_type)
1258{
1259 struct msm_pcm_stream_app_type_cfg cfg_data;
1260 int be_id = 0, app_type_idx = 0, app_type = 0;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +05301261 int ret = -EINVAL;
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001262
1263 memset(&cfg_data, 0, sizeof(cfg_data));
1264
1265 if (!is_mm_lsm_fe_id(fe_id)) {
1266 pr_err("%s: bad MM ID\n", __func__);
1267 return -EINVAL;
1268 }
1269
1270 ret = msm_pcm_routing_get_stream_app_type_cfg(fe_id, session_type,
1271 &be_id, &cfg_data);
1272 if (ret) {
Mangesh Kunchamwardaf02b02018-06-28 19:42:24 +05301273 pr_err("%s: cannot get stream app type cfg\n", __func__);
Bhalchandra Gajare3b1c9262018-05-17 00:09:19 -07001274 return ret;
1275 }
1276
1277 app_type = cfg_data.app_type;
1278 app_type_idx = msm_pcm_routing_get_lsm_app_type_idx(app_type);
1279 return lsm_app_type_cfg[app_type_idx].num_out_channels;
1280}
1281EXPORT_SYMBOL(msm_pcm_routing_get_pp_ch_cnt);
1282
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301283int msm_pcm_routing_reg_phy_compr_stream(int fe_id, int perf_mode,
1284 int dspst_id, int stream_type,
1285 uint32_t passthr_mode)
1286{
1287 int i, j, session_type, path_type, port_type, topology;
1288 int num_copps = 0;
1289 struct route_payload payload;
1290 u32 channels, sample_rate;
1291 u16 bit_width = 16;
1292 bool is_lsm;
1293
1294 pr_debug("%s:fe_id[%d] perf_mode[%d] id[%d] stream_type[%d] passt[%d]",
1295 __func__, fe_id, perf_mode, dspst_id,
1296 stream_type, passthr_mode);
1297 if (!is_mm_lsm_fe_id(fe_id)) {
1298 /* bad ID assigned in machine driver */
1299 pr_err("%s: bad MM ID %d\n", __func__, fe_id);
1300 return -EINVAL;
1301 }
1302
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301303 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1304 session_type = SESSION_TYPE_RX;
1305 if (passthr_mode != LEGACY_PCM)
1306 path_type = ADM_PATH_COMPRESSED_RX;
1307 else
1308 path_type = ADM_PATH_PLAYBACK;
1309 port_type = MSM_AFE_PORT_TYPE_RX;
1310 } else if (stream_type == SNDRV_PCM_STREAM_CAPTURE) {
1311 session_type = SESSION_TYPE_TX;
Laxminath Kasam38070be2017-08-17 18:21:59 +05301312 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301313 path_type = ADM_PATH_COMPRESSED_TX;
1314 else
1315 path_type = ADM_PATH_LIVE_REC;
1316 port_type = MSM_AFE_PORT_TYPE_TX;
1317 } else {
1318 pr_err("%s: invalid stream type %d\n", __func__, stream_type);
1319 return -EINVAL;
1320 }
1321
1322 is_lsm = (fe_id >= MSM_FRONTEND_DAI_LSM1) &&
1323 (fe_id <= MSM_FRONTEND_DAI_LSM8);
1324 mutex_lock(&routing_lock);
1325
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301326 fe_dai_map[fe_id][session_type].strm_id = dspst_id;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301327 fe_dai_map[fe_id][session_type].perf_mode = perf_mode;
1328 fe_dai_map[fe_id][session_type].passthr_mode = passthr_mode;
1329 if (!route_check_fe_id_adm_support(fe_id)) {
1330 /* ignore adm open if not supported for fe_id */
1331 pr_debug("%s: No ADM support for fe id %d\n", __func__, fe_id);
1332 mutex_unlock(&routing_lock);
1333 return 0;
1334 }
1335
1336 payload.num_copps = 0; /* only RX needs to use payload */
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301337 /* re-enable EQ if active */
1338 msm_qti_pp_send_eq_values(fe_id);
1339 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301340 if (!is_be_dai_extproc(i) &&
1341 (afe_get_port_type(msm_bedais[i].port_id) ==
1342 port_type) &&
1343 (msm_bedais[i].active) &&
1344 (test_bit(fe_id, &msm_bedais[i].fe_sessions[0]))) {
1345 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1346
1347 /*
1348 * check if ADM needs to be configured with different
1349 * channel mapping than backend
1350 */
1351 if (!msm_bedais[i].adm_override_ch)
1352 channels = msm_bedais[i].channel;
1353 else
1354 channels = msm_bedais[i].adm_override_ch;
1355
1356 bit_width = msm_routing_get_bit_width(
1357 msm_bedais[i].format);
1358 app_type =
1359 fe_dai_app_type_cfg[fe_id][session_type][i].app_type;
1360 if (app_type && is_lsm) {
1361 app_type_idx =
1362 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1363 sample_rate =
1364 fe_dai_app_type_cfg[fe_id][session_type][i]
1365 .sample_rate;
1366 bit_width =
1367 lsm_app_type_cfg[app_type_idx].bit_width;
1368 } else if (app_type) {
1369 app_type_idx =
1370 msm_pcm_routing_get_app_type_idx(
1371 app_type);
1372 sample_rate =
1373 fe_dai_app_type_cfg[fe_id][session_type][i].sample_rate;
1374 bit_width =
1375 app_type_cfg[app_type_idx].bit_width;
1376 } else {
1377 sample_rate = msm_bedais[i].sample_rate;
1378 }
1379 acdb_dev_id =
1380 fe_dai_app_type_cfg[fe_id][session_type][i].acdb_dev_id;
1381 topology = msm_routing_get_adm_topology(fe_id,
1382 session_type,
1383 i);
1384 if ((passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
1385 || (passthr_mode ==
Ralf Herzc8701f72018-06-20 11:37:35 +02001386 COMPRESSED_PASSTHROUGH_GEN)
1387 || (passthr_mode ==
1388 COMPRESSED_PASSTHROUGH_IEC61937))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301389 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
1390 pr_debug("%s: Before adm open topology %d\n", __func__,
1391 topology);
1392
1393 copp_idx =
1394 adm_open(msm_bedais[i].port_id,
1395 path_type, sample_rate, channels,
1396 topology, perf_mode, bit_width,
1397 app_type, acdb_dev_id);
1398 if ((copp_idx < 0) ||
1399 (copp_idx >= MAX_COPPS_PER_PORT)) {
1400 pr_err("%s:adm open failed coppid:%d\n",
1401 __func__, copp_idx);
1402 mutex_unlock(&routing_lock);
1403 return -EINVAL;
1404 }
1405 pr_debug("%s: set idx bit of fe:%d, type: %d, be:%d\n",
1406 __func__, fe_id, session_type, i);
1407 set_bit(copp_idx,
1408 &session_copp_map[fe_id][session_type][i]);
1409
1410 if (msm_is_resample_needed(
1411 sample_rate,
1412 msm_bedais[i].sample_rate))
1413 adm_copp_mfc_cfg(
1414 msm_bedais[i].port_id, copp_idx,
1415 msm_bedais[i].sample_rate);
1416
1417 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1418 unsigned long copp =
1419 session_copp_map[fe_id][session_type][i];
1420 if (test_bit(j, &copp)) {
1421 payload.port_id[num_copps] =
1422 msm_bedais[i].port_id;
1423 payload.copp_idx[num_copps] = j;
1424 payload.app_type[num_copps] =
1425 fe_dai_app_type_cfg
1426 [fe_id][session_type][i]
1427 .app_type;
1428 payload.acdb_dev_id[num_copps] =
1429 fe_dai_app_type_cfg
1430 [fe_id][session_type][i]
1431 .acdb_dev_id;
1432 payload.sample_rate[num_copps] =
1433 fe_dai_app_type_cfg
1434 [fe_id][session_type][i]
1435 .sample_rate;
1436 num_copps++;
1437 }
1438 }
1439 if (passthr_mode != COMPRESSED_PASSTHROUGH_DSD
Ralf Herzc8701f72018-06-20 11:37:35 +02001440 && passthr_mode != COMPRESSED_PASSTHROUGH_GEN
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301441 && passthr_mode != COMPRESSED_PASSTHROUGH_IEC61937)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301442 msm_routing_send_device_pp_params(
Ralf Herzc8701f72018-06-20 11:37:35 +02001443 msm_bedais[i].port_id,
1444 copp_idx, fe_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301445 }
1446 }
1447 if (num_copps) {
1448 payload.num_copps = num_copps;
1449 payload.session_id = fe_dai_map[fe_id][session_type].strm_id;
1450 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1451 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1452 }
1453 mutex_unlock(&routing_lock);
1454 return 0;
1455}
1456
1457static u32 msm_pcm_routing_get_voc_sessionid(u16 val)
1458{
1459 u32 session_id;
1460
1461 switch (val) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301462 case MSM_FRONTEND_DAI_QCHAT:
1463 session_id = voc_get_session_id(QCHAT_SESSION_NAME);
1464 break;
1465 case MSM_FRONTEND_DAI_VOIP:
1466 session_id = voc_get_session_id(VOIP_SESSION_NAME);
1467 break;
1468 case MSM_FRONTEND_DAI_VOICEMMODE1:
1469 session_id = voc_get_session_id(VOICEMMODE1_NAME);
1470 break;
1471 case MSM_FRONTEND_DAI_VOICEMMODE2:
1472 session_id = voc_get_session_id(VOICEMMODE2_NAME);
1473 break;
1474 default:
1475 session_id = 0;
1476 }
1477
1478 pr_debug("%s session_id 0x%x", __func__, session_id);
1479 return session_id;
1480}
1481
1482static int msm_pcm_routing_channel_mixer(int fe_id, bool perf_mode,
1483 int dspst_id, int stream_type)
1484{
1485 int copp_idx = 0;
1486 int sess_type = 0;
1487 int i = 0, j = 0, be_id;
1488 int ret = 0;
1489
1490 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
1491 pr_err("%s: invalid FE %d\n", __func__, fe_id);
1492 return 0;
1493 }
1494
1495 if (!(channel_mixer[fe_id].enable)) {
1496 pr_debug("%s: channel mixer not enabled for FE %d\n",
1497 __func__, fe_id);
1498 return 0;
1499 }
1500
1501 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1502 sess_type = SESSION_TYPE_RX;
1503 else
1504 sess_type = SESSION_TYPE_TX;
1505
1506 for (i = 0; i < ADM_MAX_CHANNELS && channel_input[fe_id][i] > 0;
1507 ++i) {
1508 be_id = channel_input[fe_id][i] - 1;
1509 channel_mixer[fe_id].input_channels[i] =
1510 msm_bedais[be_id].channel;
1511
1512 if ((msm_bedais[be_id].active) &&
1513 test_bit(fe_id,
1514 &msm_bedais[be_id].fe_sessions[0])) {
1515 unsigned long copp =
1516 session_copp_map[fe_id][sess_type][be_id];
1517 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1518 if (test_bit(j, &copp)) {
1519 copp_idx = j;
1520 break;
1521 }
1522 }
1523
1524 pr_debug("%s: fe %d, be %d, channel %d, copp %d\n",
1525 __func__,
1526 fe_id, be_id, msm_bedais[be_id].channel,
1527 copp_idx);
1528 ret = adm_programable_channel_mixer(
1529 msm_bedais[be_id].port_id,
1530 copp_idx, dspst_id, sess_type,
1531 channel_mixer + fe_id, i);
1532 }
1533 }
1534
1535 return ret;
1536}
1537
1538int msm_pcm_routing_reg_phy_stream(int fedai_id, int perf_mode,
1539 int dspst_id, int stream_type)
1540{
1541 int i, j, session_type, path_type, port_type, topology, num_copps = 0;
1542 struct route_payload payload;
1543 u32 channels, sample_rate;
1544 uint16_t bits_per_sample = 16;
1545 uint32_t passthr_mode = LEGACY_PCM;
1546 int ret = 0;
1547
1548 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
1549 /* bad ID assigned in machine driver */
1550 pr_err("%s: bad MM ID %d\n", __func__, fedai_id);
1551 return -EINVAL;
1552 }
1553
1554 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1555 session_type = SESSION_TYPE_RX;
1556 path_type = ADM_PATH_PLAYBACK;
1557 port_type = MSM_AFE_PORT_TYPE_RX;
1558 } else {
1559 session_type = SESSION_TYPE_TX;
1560 path_type = ADM_PATH_LIVE_REC;
1561 port_type = MSM_AFE_PORT_TYPE_TX;
1562 }
1563
1564 mutex_lock(&routing_lock);
1565
1566 payload.num_copps = 0; /* only RX needs to use payload */
1567 fe_dai_map[fedai_id][session_type].strm_id = dspst_id;
1568 fe_dai_map[fedai_id][session_type].perf_mode = perf_mode;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301569 fe_dai_map[fedai_id][session_type].passthr_mode = LEGACY_PCM;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301570
1571 /* re-enable EQ if active */
1572 msm_qti_pp_send_eq_values(fedai_id);
1573 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1574 if (!is_be_dai_extproc(i) &&
1575 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1576 (msm_bedais[i].active) &&
1577 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1578 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1579 /*
1580 * check if ADM needs to be configured with different
1581 * channel mapping than backend
1582 */
1583 if (!msm_bedais[i].adm_override_ch)
1584 channels = msm_bedais[i].channel;
1585 else
1586 channels = msm_bedais[i].adm_override_ch;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301587
1588 bits_per_sample = msm_routing_get_bit_width(
1589 msm_bedais[i].format);
1590
1591 app_type =
1592 fe_dai_app_type_cfg[fedai_id][session_type][i].app_type;
1593 if (app_type) {
1594 app_type_idx =
1595 msm_pcm_routing_get_app_type_idx(app_type);
1596 sample_rate =
1597 fe_dai_app_type_cfg[fedai_id][session_type][i]
1598 .sample_rate;
1599 bits_per_sample =
1600 app_type_cfg[app_type_idx].bit_width;
1601 } else
1602 sample_rate = msm_bedais[i].sample_rate;
1603
1604 acdb_dev_id =
1605 fe_dai_app_type_cfg[fedai_id][session_type][i]
1606 .acdb_dev_id;
1607 topology = msm_routing_get_adm_topology(fedai_id,
1608 session_type,
1609 i);
1610 copp_idx = adm_open(msm_bedais[i].port_id, path_type,
1611 sample_rate, channels, topology,
1612 perf_mode, bits_per_sample,
1613 app_type, acdb_dev_id);
1614 if ((copp_idx < 0) ||
1615 (copp_idx >= MAX_COPPS_PER_PORT)) {
1616 pr_err("%s: adm open failed copp_idx:%d\n",
Vikram Panduranga770b8382017-09-27 12:17:36 -07001617 __func__, copp_idx);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301618 mutex_unlock(&routing_lock);
1619 return -EINVAL;
1620 }
1621 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1622 __func__, fedai_id, session_type, i);
1623 set_bit(copp_idx,
1624 &session_copp_map[fedai_id][session_type][i]);
1625
1626 if (msm_is_resample_needed(
1627 sample_rate,
1628 msm_bedais[i].sample_rate))
1629 adm_copp_mfc_cfg(
1630 msm_bedais[i].port_id, copp_idx,
1631 msm_bedais[i].sample_rate);
1632
1633 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
1634 unsigned long copp =
1635 session_copp_map[fedai_id][session_type][i];
1636 if (test_bit(j, &copp)) {
1637 payload.port_id[num_copps] =
1638 msm_bedais[i].port_id;
1639 payload.copp_idx[num_copps] = j;
1640 payload.app_type[num_copps] =
1641 fe_dai_app_type_cfg
1642 [fedai_id][session_type]
1643 [i].app_type;
1644 payload.acdb_dev_id[num_copps] =
1645 fe_dai_app_type_cfg
1646 [fedai_id][session_type]
1647 [i].acdb_dev_id;
1648 payload.sample_rate[num_copps] =
1649 fe_dai_app_type_cfg
1650 [fedai_id][session_type]
1651 [i].sample_rate;
1652 num_copps++;
1653 }
1654 }
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301655 if (perf_mode == LEGACY_PCM_MODE)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301656 msm_pcm_routing_cfg_pp(msm_bedais[i].port_id,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301657 copp_idx, topology, channels);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301658 }
1659 }
1660 if (num_copps) {
1661 payload.num_copps = num_copps;
1662 payload.session_id = fe_dai_map[fedai_id][session_type].strm_id;
1663 adm_matrix_map(path_type, payload, perf_mode, passthr_mode);
1664 msm_pcm_routng_cfg_matrix_map_pp(payload, path_type, perf_mode);
1665 }
1666
1667 ret = msm_pcm_routing_channel_mixer(fedai_id, perf_mode,
1668 dspst_id, stream_type);
1669 mutex_unlock(&routing_lock);
1670 return ret;
1671}
1672
1673int msm_pcm_routing_reg_phy_stream_v2(int fedai_id, int perf_mode,
1674 int dspst_id, int stream_type,
1675 struct msm_pcm_routing_evt event_info)
1676{
1677 if (msm_pcm_routing_reg_phy_stream(fedai_id, perf_mode, dspst_id,
1678 stream_type)) {
1679 pr_err("%s: failed to reg phy stream\n", __func__);
1680 return -EINVAL;
1681 }
1682
1683 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK)
1684 fe_dai_map[fedai_id][SESSION_TYPE_RX].event_info = event_info;
1685 else
1686 fe_dai_map[fedai_id][SESSION_TYPE_TX].event_info = event_info;
1687 return 0;
1688}
1689
1690void msm_pcm_routing_dereg_phy_stream(int fedai_id, int stream_type)
1691{
1692 int i, port_type, session_type, path_type, topology;
1693 struct msm_pcm_routing_fdai_data *fdai;
1694
1695 if (!is_mm_lsm_fe_id(fedai_id)) {
1696 /* bad ID assigned in machine driver */
1697 pr_err("%s: bad MM ID\n", __func__);
1698 return;
1699 }
1700
1701 if (stream_type == SNDRV_PCM_STREAM_PLAYBACK) {
1702 port_type = MSM_AFE_PORT_TYPE_RX;
1703 session_type = SESSION_TYPE_RX;
1704 path_type = ADM_PATH_PLAYBACK;
1705 } else {
1706 port_type = MSM_AFE_PORT_TYPE_TX;
1707 session_type = SESSION_TYPE_TX;
1708 path_type = ADM_PATH_LIVE_REC;
1709 }
1710
1711 mutex_lock(&routing_lock);
1712 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
1713 if (!is_be_dai_extproc(i) &&
1714 (afe_get_port_type(msm_bedais[i].port_id) == port_type) &&
1715 (msm_bedais[i].active) &&
1716 (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))) {
1717 int idx;
1718 unsigned long copp =
1719 session_copp_map[fedai_id][session_type][i];
1720 fdai = &fe_dai_map[fedai_id][session_type];
1721
1722 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1723 if (test_bit(idx, &copp))
1724 break;
1725
1726 if (idx >= MAX_COPPS_PER_PORT || idx < 0) {
1727 pr_debug("%s: copp idx is invalid, exiting\n",
1728 __func__);
1729 continue;
1730 }
1731 topology = adm_get_topology_for_port_copp_idx(
1732 msm_bedais[i].port_id, idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001733 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301734 adm_close(msm_bedais[i].port_id, fdai->perf_mode, idx);
1735 pr_debug("%s:copp:%ld,idx bit fe:%d,type:%d,be:%d\n",
1736 __func__, copp, fedai_id, session_type, i);
1737 clear_bit(idx,
1738 &session_copp_map[fedai_id][session_type][i]);
1739 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1740 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1741 (fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301742 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301743 msm_pcm_routing_deinit_pp(msm_bedais[i].port_id,
1744 topology);
1745 }
1746 }
1747
1748 fe_dai_map[fedai_id][session_type].strm_id = INVALID_SESSION;
1749 fe_dai_map[fedai_id][session_type].be_srate = 0;
1750 mutex_unlock(&routing_lock);
1751}
1752
1753/* Check if FE/BE route is set */
1754static bool msm_pcm_routing_route_is_set(u16 be_id, u16 fe_id)
1755{
1756 bool rc = false;
1757
1758 if (!is_mm_lsm_fe_id(fe_id)) {
1759 /* recheck FE ID in the mixer control defined in this file */
1760 pr_err("%s: bad MM ID\n", __func__);
1761 return rc;
1762 }
1763
1764 if (test_bit(fe_id, &msm_bedais[be_id].fe_sessions[0]))
1765 rc = true;
1766
1767 return rc;
1768}
1769
1770static void msm_pcm_routing_process_audio(u16 reg, u16 val, int set)
1771{
1772 int session_type, path_type, topology;
1773 u32 channels, sample_rate;
1774 uint16_t bits_per_sample = 16;
1775 struct msm_pcm_routing_fdai_data *fdai;
1776 uint32_t passthr_mode;
1777 bool is_lsm;
1778
1779 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
1780
1781 if (!is_mm_lsm_fe_id(val)) {
1782 /* recheck FE ID in the mixer control defined in this file */
1783 pr_err("%s: bad MM ID\n", __func__);
1784 return;
1785 }
1786
1787 if (!route_check_fe_id_adm_support(val)) {
1788 /* ignore adm open if not supported for fe_id */
1789 pr_debug("%s: No ADM support for fe id %d\n", __func__, val);
1790 return;
1791 }
1792
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +05301793 session_type =
1794 (afe_get_port_type(msm_bedais[reg].port_id) == MSM_AFE_PORT_TYPE_RX) ?
1795 SESSION_TYPE_RX : SESSION_TYPE_TX;
1796 fdai = &fe_dai_map[val][session_type];
1797 passthr_mode = fdai->passthr_mode;
1798 if (session_type == SESSION_TYPE_RX) {
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301799 if (passthr_mode != LEGACY_PCM)
1800 path_type = ADM_PATH_COMPRESSED_RX;
1801 else
1802 path_type = ADM_PATH_PLAYBACK;
1803 } else {
Ralf Herzc8701f72018-06-20 11:37:35 +02001804 if ((passthr_mode != LEGACY_PCM) && (passthr_mode != LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301805 path_type = ADM_PATH_COMPRESSED_TX;
1806 else
1807 path_type = ADM_PATH_LIVE_REC;
1808 }
1809 is_lsm = (val >= MSM_FRONTEND_DAI_LSM1) &&
1810 (val <= MSM_FRONTEND_DAI_LSM8);
1811
1812 mutex_lock(&routing_lock);
1813 if (set) {
1814 if (!test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1815 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1816 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1817 voc_start_playback(set, msm_bedais[reg].port_id);
1818
1819 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301820 if (msm_bedais[reg].active && fdai->strm_id !=
1821 INVALID_SESSION) {
1822 int app_type, app_type_idx, copp_idx, acdb_dev_id;
1823 /*
1824 * check if ADM needs to be configured with different
1825 * channel mapping than backend
1826 */
1827 if (!msm_bedais[reg].adm_override_ch)
1828 channels = msm_bedais[reg].channel;
1829 else
1830 channels = msm_bedais[reg].adm_override_ch;
1831 if (session_type == SESSION_TYPE_TX &&
1832 fdai->be_srate &&
1833 (fdai->be_srate != msm_bedais[reg].sample_rate)) {
1834 pr_debug("%s: flush strm %d diff BE rates\n",
1835 __func__, fdai->strm_id);
1836
1837 if (fdai->event_info.event_func)
1838 fdai->event_info.event_func(
1839 MSM_PCM_RT_EVT_BUF_RECFG,
1840 fdai->event_info.priv_data);
1841 fdai->be_srate = 0; /* might not need it */
1842 }
1843
1844 bits_per_sample = msm_routing_get_bit_width(
1845 msm_bedais[reg].format);
1846
1847 app_type =
1848 fe_dai_app_type_cfg[val][session_type][reg].app_type;
1849 if (app_type && is_lsm) {
1850 app_type_idx =
1851 msm_pcm_routing_get_lsm_app_type_idx(app_type);
1852 sample_rate =
1853 fe_dai_app_type_cfg[val][session_type][reg]
1854 .sample_rate;
1855 bits_per_sample =
1856 lsm_app_type_cfg[app_type_idx].bit_width;
1857 } else if (app_type) {
1858 app_type_idx =
1859 msm_pcm_routing_get_app_type_idx(app_type);
1860 sample_rate =
1861 fe_dai_app_type_cfg[val][session_type][reg]
1862 .sample_rate;
1863 bits_per_sample =
1864 app_type_cfg[app_type_idx].bit_width;
1865 } else
1866 sample_rate = msm_bedais[reg].sample_rate;
1867
1868 topology = msm_routing_get_adm_topology(val,
1869 session_type,
1870 reg);
1871 acdb_dev_id =
1872 fe_dai_app_type_cfg[val][session_type][reg].acdb_dev_id;
1873 copp_idx = adm_open(msm_bedais[reg].port_id, path_type,
1874 sample_rate, channels, topology,
1875 fdai->perf_mode, bits_per_sample,
1876 app_type, acdb_dev_id);
1877 if ((copp_idx < 0) ||
1878 (copp_idx >= MAX_COPPS_PER_PORT)) {
1879 pr_err("%s: adm open failed\n", __func__);
1880 mutex_unlock(&routing_lock);
1881 return;
1882 }
1883 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
1884 __func__, val, session_type, reg);
1885 set_bit(copp_idx,
1886 &session_copp_map[val][session_type][reg]);
1887
1888 if (msm_is_resample_needed(
1889 sample_rate,
1890 msm_bedais[reg].sample_rate))
1891 adm_copp_mfc_cfg(
1892 msm_bedais[reg].port_id, copp_idx,
1893 msm_bedais[reg].sample_rate);
1894
1895 if (session_type == SESSION_TYPE_RX &&
1896 fdai->event_info.event_func)
1897 fdai->event_info.event_func(
1898 MSM_PCM_RT_EVT_DEVSWITCH,
1899 fdai->event_info.priv_data);
1900
1901 msm_pcm_routing_build_matrix(val, session_type,
1902 path_type,
1903 fdai->perf_mode,
1904 passthr_mode);
1905 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
1906 (passthr_mode == LEGACY_PCM))
1907 msm_pcm_routing_cfg_pp(msm_bedais[reg].port_id,
1908 copp_idx, topology,
1909 channels);
1910 }
1911 } else {
1912 if (test_bit(val, &msm_bedais[reg].fe_sessions[0]) &&
1913 ((msm_bedais[reg].port_id == VOICE_PLAYBACK_TX) ||
1914 (msm_bedais[reg].port_id == VOICE2_PLAYBACK_TX)))
1915 voc_start_playback(set, msm_bedais[reg].port_id);
1916 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301917 if (msm_bedais[reg].active && fdai->strm_id !=
1918 INVALID_SESSION) {
1919 int idx;
1920 int port_id;
1921 unsigned long copp =
1922 session_copp_map[val][session_type][reg];
1923 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
1924 if (test_bit(idx, &copp))
1925 break;
1926
Vignesh Kulothungane59d3152018-10-10 14:19:59 -07001927 if (idx >= MAX_COPPS_PER_PORT) {
1928 pr_debug("%s: copp idx is invalid, exiting\n",
1929 __func__);
1930 mutex_unlock(&routing_lock);
1931 return;
1932 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301933 port_id = msm_bedais[reg].port_id;
1934 topology = adm_get_topology_for_port_copp_idx(port_id,
1935 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -07001936 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301937 adm_close(msm_bedais[reg].port_id, fdai->perf_mode,
1938 idx);
1939 pr_debug("%s: copp: %ld, reset idx bit fe:%d, type: %d, be:%d topology=0x%x\n",
1940 __func__, copp, val, session_type, reg,
1941 topology);
1942 clear_bit(idx,
1943 &session_copp_map[val][session_type][reg]);
1944 if ((topology == DOLBY_ADM_COPP_TOPOLOGY_ID ||
1945 topology == DS2_ADM_COPP_TOPOLOGY_ID) &&
1946 (fdai->perf_mode == LEGACY_PCM_MODE) &&
1947 (passthr_mode == LEGACY_PCM))
1948 msm_pcm_routing_deinit_pp(
1949 msm_bedais[reg].port_id,
1950 topology);
1951 msm_pcm_routing_build_matrix(val, session_type,
1952 path_type,
1953 fdai->perf_mode,
1954 passthr_mode);
1955 }
1956 }
1957 if ((msm_bedais[reg].port_id == VOICE_RECORD_RX)
1958 || (msm_bedais[reg].port_id == VOICE_RECORD_TX))
1959 voc_start_record(msm_bedais[reg].port_id, set, voc_session_id);
1960
1961 mutex_unlock(&routing_lock);
1962}
1963
1964static int msm_routing_get_audio_mixer(struct snd_kcontrol *kcontrol,
1965 struct snd_ctl_elem_value *ucontrol)
1966{
1967 struct soc_mixer_control *mc =
1968 (struct soc_mixer_control *)kcontrol->private_value;
1969
Meng Wang05d5e9a2018-03-28 16:45:03 +08001970 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301971 ucontrol->value.integer.value[0] = 1;
1972 else
1973 ucontrol->value.integer.value[0] = 0;
1974
Meng Wang05d5e9a2018-03-28 16:45:03 +08001975 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301976 ucontrol->value.integer.value[0]);
1977
1978 return 0;
1979}
1980
1981static int msm_routing_put_audio_mixer(struct snd_kcontrol *kcontrol,
1982 struct snd_ctl_elem_value *ucontrol)
1983{
Asish Bhattacharya34504582017-08-08 12:55:01 +05301984 struct snd_soc_dapm_widget *widget =
1985 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301986 struct soc_mixer_control *mc =
1987 (struct soc_mixer_control *)kcontrol->private_value;
1988 struct snd_soc_dapm_update *update = NULL;
1989
1990 if (ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001991 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false) {
1992 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301993 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
1994 update);
1995 } else if (!ucontrol->value.integer.value[0] &&
Meng Wang05d5e9a2018-03-28 16:45:03 +08001996 msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true) {
1997 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05301998 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
1999 update);
2000 }
2001
2002 return 1;
2003}
2004
2005static int msm_routing_get_listen_mixer(struct snd_kcontrol *kcontrol,
2006 struct snd_ctl_elem_value *ucontrol)
2007{
2008 struct soc_mixer_control *mc =
2009 (struct soc_mixer_control *)kcontrol->private_value;
2010
Meng Wang05d5e9a2018-03-28 16:45:03 +08002011 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302012 ucontrol->value.integer.value[0] = 1;
2013 else
2014 ucontrol->value.integer.value[0] = 0;
2015
Meng Wang05d5e9a2018-03-28 16:45:03 +08002016 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302017 ucontrol->value.integer.value[0]);
2018
2019 return 0;
2020}
2021
2022static int msm_routing_put_listen_mixer(struct snd_kcontrol *kcontrol,
2023 struct snd_ctl_elem_value *ucontrol)
2024{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302025 struct snd_soc_dapm_widget *widget =
2026 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302027 struct soc_mixer_control *mc =
2028 (struct soc_mixer_control *)kcontrol->private_value;
2029 struct snd_soc_dapm_update *update = NULL;
2030
Meng Wang05d5e9a2018-03-28 16:45:03 +08002031 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302032 ucontrol->value.integer.value[0]);
2033
2034 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002035 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == false)
2036 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302037 snd_soc_dapm_mixer_update_power(widget->dapm,
2038 kcontrol, 1, update);
2039 } else if (!ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002040 if (msm_pcm_routing_route_is_set(mc->shift, mc->rshift) == true)
2041 msm_pcm_routing_process_audio(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302042 snd_soc_dapm_mixer_update_power(widget->dapm,
2043 kcontrol, 0, update);
2044 }
2045
2046 return 1;
2047}
2048
2049static void msm_pcm_routing_process_voice(u16 reg, u16 val, int set)
2050{
2051 u32 session_id = 0;
2052 u16 path_type;
2053 struct media_format_info voc_be_media_format;
2054
2055 pr_debug("%s: reg %x val %x set %x\n", __func__, reg, val, set);
2056
2057 session_id = msm_pcm_routing_get_voc_sessionid(val);
2058
2059 pr_debug("%s: FE DAI 0x%x session_id 0x%x\n",
2060 __func__, val, session_id);
2061
2062 mutex_lock(&routing_lock);
2063
2064 if (set)
2065 set_bit(val, &msm_bedais[reg].fe_sessions[0]);
2066 else
2067 clear_bit(val, &msm_bedais[reg].fe_sessions[0]);
2068
2069 if (val == MSM_FRONTEND_DAI_DTMF_RX &&
2070 afe_get_port_type(msm_bedais[reg].port_id) ==
2071 MSM_AFE_PORT_TYPE_RX) {
2072 pr_debug("%s(): set=%d port id=0x%x for dtmf generation\n",
2073 __func__, set, msm_bedais[reg].port_id);
2074 afe_set_dtmf_gen_rx_portid(msm_bedais[reg].port_id, set);
2075 }
2076
2077 if (afe_get_port_type(msm_bedais[reg].port_id) ==
2078 MSM_AFE_PORT_TYPE_RX)
2079 path_type = RX_PATH;
2080 else
2081 path_type = TX_PATH;
2082
2083 if (set) {
2084 if (msm_bedais[reg].active) {
2085 voc_set_route_flag(session_id, path_type, 1);
2086
2087 memset(&voc_be_media_format, 0,
2088 sizeof(struct media_format_info));
2089
2090 voc_be_media_format.port_id = msm_bedais[reg].port_id;
2091 voc_be_media_format.num_channels =
2092 msm_bedais[reg].channel;
2093 voc_be_media_format.sample_rate =
2094 msm_bedais[reg].sample_rate;
2095 voc_be_media_format.bits_per_sample =
2096 msm_bedais[reg].format;
2097 /* Defaulting this to 1 for voice call usecases */
2098 voc_be_media_format.channel_mapping[0] = 1;
2099
2100 voc_set_device_config(session_id, path_type,
2101 &voc_be_media_format);
2102
2103 if (voc_get_route_flag(session_id, TX_PATH) &&
2104 voc_get_route_flag(session_id, RX_PATH))
2105 voc_enable_device(session_id);
2106 } else {
2107 pr_debug("%s BE is not active\n", __func__);
2108 }
2109 } else {
2110 voc_set_route_flag(session_id, path_type, 0);
2111 voc_disable_device(session_id);
2112 }
2113
2114 mutex_unlock(&routing_lock);
2115
2116}
2117
2118static int msm_routing_get_voice_mixer(struct snd_kcontrol *kcontrol,
2119 struct snd_ctl_elem_value *ucontrol)
2120{
2121 struct soc_mixer_control *mc =
2122 (struct soc_mixer_control *)kcontrol->private_value;
2123
2124 mutex_lock(&routing_lock);
2125
Meng Wang05d5e9a2018-03-28 16:45:03 +08002126 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302127 ucontrol->value.integer.value[0] = 1;
2128 else
2129 ucontrol->value.integer.value[0] = 0;
2130
2131 mutex_unlock(&routing_lock);
2132
Meng Wang05d5e9a2018-03-28 16:45:03 +08002133 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302134 ucontrol->value.integer.value[0]);
2135
2136 return 0;
2137}
2138
2139static int msm_routing_put_voice_mixer(struct snd_kcontrol *kcontrol,
2140 struct snd_ctl_elem_value *ucontrol)
2141{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302142 struct snd_soc_dapm_widget *widget =
2143 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302144 struct soc_mixer_control *mc =
2145 (struct soc_mixer_control *)kcontrol->private_value;
2146 struct snd_soc_dapm_update *update = NULL;
2147
2148 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002149 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 1);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302150 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2151 update);
2152 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002153 msm_pcm_routing_process_voice(mc->shift, mc->rshift, 0);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302154 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2155 update);
2156 }
2157
2158 return 1;
2159}
2160
2161static int msm_routing_get_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2162 struct snd_ctl_elem_value *ucontrol)
2163{
2164 struct soc_mixer_control *mc =
2165 (struct soc_mixer_control *)kcontrol->private_value;
2166
2167 mutex_lock(&routing_lock);
2168
Meng Wang05d5e9a2018-03-28 16:45:03 +08002169 if (test_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302170 ucontrol->value.integer.value[0] = 1;
2171 else
2172 ucontrol->value.integer.value[0] = 0;
2173
2174 mutex_unlock(&routing_lock);
2175
Meng Wang05d5e9a2018-03-28 16:45:03 +08002176 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302177 ucontrol->value.integer.value[0]);
2178
2179 return 0;
2180}
2181
2182static int msm_routing_put_voice_stub_mixer(struct snd_kcontrol *kcontrol,
2183 struct snd_ctl_elem_value *ucontrol)
2184{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302185 struct snd_soc_dapm_widget *widget =
2186 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302187 struct soc_mixer_control *mc =
2188 (struct soc_mixer_control *)kcontrol->private_value;
2189 struct snd_soc_dapm_update *update = NULL;
2190
2191 if (ucontrol->value.integer.value[0]) {
2192 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002193 set_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302194 mutex_unlock(&routing_lock);
2195
2196 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2197 update);
2198 } else {
2199 mutex_lock(&routing_lock);
Meng Wang05d5e9a2018-03-28 16:45:03 +08002200 clear_bit(mc->rshift, &msm_bedais[mc->shift].fe_sessions[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302201 mutex_unlock(&routing_lock);
2202
2203 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2204 update);
2205 }
2206
Meng Wang05d5e9a2018-03-28 16:45:03 +08002207 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302208 ucontrol->value.integer.value[0]);
2209
2210 return 1;
2211}
2212
2213/*
2214 * Return the mapping between port ID and backend ID to enable the AFE callback
2215 * to determine the acdb_dev_id from the port id
2216 */
2217int msm_pcm_get_be_id_from_port_id(int port_id)
2218{
2219 int i;
2220 int be_id = -EINVAL;
2221
2222 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
2223 if (msm_bedais[i].port_id == port_id) {
2224 be_id = i;
2225 break;
2226 }
2227 }
2228
2229 return be_id;
2230}
2231
2232/*
2233 * Return the registered dev_acdb_id given a port ID to enable identifying the
2234 * correct AFE calibration information by comparing the header information.
2235 */
2236static int msm_pcm_get_dev_acdb_id_by_port_id(int port_id)
2237{
2238 int acdb_id = -EINVAL;
2239 int i = 0;
2240 int session;
2241 int port_type = afe_get_port_type(port_id);
2242 int be_id = msm_pcm_get_be_id_from_port_id(port_id);
2243
2244 pr_debug("%s:port_id %d be_id %d, port_type 0x%x\n",
2245 __func__, port_id, be_id, port_type);
2246
2247 if (port_type == MSM_AFE_PORT_TYPE_TX) {
2248 session = SESSION_TYPE_TX;
2249 } else if (port_type == MSM_AFE_PORT_TYPE_RX) {
2250 session = SESSION_TYPE_RX;
2251 } else {
2252 pr_err("%s: Invalid port type %d\n", __func__, port_type);
2253 acdb_id = -EINVAL;
2254 goto exit;
2255 }
2256
2257 if (be_id < 0) {
2258 pr_err("%s: Error getting backend id %d\n", __func__, be_id);
2259 goto exit;
2260 }
2261
2262 mutex_lock(&routing_lock);
2263 i = find_first_bit(&msm_bedais[be_id].fe_sessions[0],
2264 MSM_FRONTEND_DAI_MAX);
2265 if (i < MSM_FRONTEND_DAI_MAX)
2266 acdb_id = fe_dai_app_type_cfg[i][session][be_id].acdb_dev_id;
2267
2268 pr_debug("%s: FE[%d] session[%d] BE[%d] acdb_id(%d)\n",
2269 __func__, i, session, be_id, acdb_id);
2270 mutex_unlock(&routing_lock);
2271exit:
2272 return acdb_id;
2273}
2274
2275static int msm_routing_get_switch_mixer(struct snd_kcontrol *kcontrol,
2276 struct snd_ctl_elem_value *ucontrol)
2277{
2278 ucontrol->value.integer.value[0] = fm_switch_enable;
2279 pr_debug("%s: FM Switch enable %ld\n", __func__,
2280 ucontrol->value.integer.value[0]);
2281 return 0;
2282}
2283
2284static int msm_routing_put_switch_mixer(struct snd_kcontrol *kcontrol,
2285 struct snd_ctl_elem_value *ucontrol)
2286{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302287 struct snd_soc_dapm_widget *widget =
2288 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302289 struct snd_soc_dapm_update *update = NULL;
2290
2291 pr_debug("%s: FM Switch enable %ld\n", __func__,
2292 ucontrol->value.integer.value[0]);
2293 if (ucontrol->value.integer.value[0])
2294 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2295 update);
2296 else
2297 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2298 update);
2299 fm_switch_enable = ucontrol->value.integer.value[0];
2300 return 1;
2301}
2302
2303static int msm_routing_get_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2304 struct snd_ctl_elem_value *ucontrol)
2305{
2306 ucontrol->value.integer.value[0] = hfp_switch_enable;
2307 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2308 ucontrol->value.integer.value[0]);
2309 return 0;
2310}
2311
2312static int msm_routing_put_hfp_switch_mixer(struct snd_kcontrol *kcontrol,
2313 struct snd_ctl_elem_value *ucontrol)
2314{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302315 struct snd_soc_dapm_widget *widget =
2316 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302317 struct snd_soc_dapm_update *update = NULL;
2318
2319 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2320 ucontrol->value.integer.value[0]);
2321 if (ucontrol->value.integer.value[0])
2322 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2323 1, update);
2324 else
2325 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2326 0, update);
2327 hfp_switch_enable = ucontrol->value.integer.value[0];
2328 return 1;
2329}
2330
Aniket Kumar Latac0c31472018-02-22 14:46:09 -08002331static int msm_routing_a2dp_switch_mixer_get(struct snd_kcontrol *kcontrol,
2332 struct snd_ctl_elem_value *ucontrol)
2333{
2334 ucontrol->value.integer.value[0] = a2dp_switch_enable;
2335 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2336 ucontrol->value.integer.value[0]);
2337 return 0;
2338}
2339
2340static int msm_routing_a2dp_switch_mixer_put(struct snd_kcontrol *kcontrol,
2341 struct snd_ctl_elem_value *ucontrol)
2342{
2343 struct snd_soc_dapm_widget *widget =
2344 snd_soc_dapm_kcontrol_widget(kcontrol);
2345 struct snd_soc_dapm_update *update = NULL;
2346
2347 pr_debug("%s: A2DP Switch enable %ld\n", __func__,
2348 ucontrol->value.integer.value[0]);
2349 a2dp_switch_enable = ucontrol->value.integer.value[0];
2350 if (a2dp_switch_enable)
2351 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2352 1, update);
2353 else
2354 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2355 0, update);
2356 return 1;
2357}
2358
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302359static int msm_routing_get_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2360 struct snd_ctl_elem_value *ucontrol)
2361{
2362 ucontrol->value.integer.value[0] = int0_mi2s_switch_enable;
2363 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2364 ucontrol->value.integer.value[0]);
2365 return 0;
2366}
2367
2368static int msm_routing_put_int0_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2369 struct snd_ctl_elem_value *ucontrol)
2370{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302371 struct snd_soc_dapm_widget *widget =
2372 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302373 struct snd_soc_dapm_update *update = NULL;
2374
2375 pr_debug("%s: INT0 MI2S Switch enable %ld\n", __func__,
2376 ucontrol->value.integer.value[0]);
2377 if (ucontrol->value.integer.value[0])
2378 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2379 update);
2380 else
2381 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2382 update);
2383 int0_mi2s_switch_enable = ucontrol->value.integer.value[0];
2384 return 1;
2385}
2386
2387static int msm_routing_get_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2388 struct snd_ctl_elem_value *ucontrol)
2389{
2390 ucontrol->value.integer.value[0] = int4_mi2s_switch_enable;
2391 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2392 ucontrol->value.integer.value[0]);
2393 return 0;
2394}
2395
2396static int msm_routing_put_int4_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2397 struct snd_ctl_elem_value *ucontrol)
2398{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302399 struct snd_soc_dapm_widget *widget =
2400 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302401 struct snd_soc_dapm_update *update = NULL;
2402
2403 pr_debug("%s: INT4 MI2S Switch enable %ld\n", __func__,
2404 ucontrol->value.integer.value[0]);
2405 if (ucontrol->value.integer.value[0])
2406 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2407 update);
2408 else
2409 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2410 update);
2411 int4_mi2s_switch_enable = ucontrol->value.integer.value[0];
2412 return 1;
2413}
2414
2415static int msm_routing_get_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2416 struct snd_ctl_elem_value *ucontrol)
2417{
2418 ucontrol->value.integer.value[0] = usb_switch_enable;
2419 pr_debug("%s: HFP Switch enable %ld\n", __func__,
2420 ucontrol->value.integer.value[0]);
2421 return 0;
2422}
2423
2424static int msm_routing_put_usb_switch_mixer(struct snd_kcontrol *kcontrol,
2425 struct snd_ctl_elem_value *ucontrol)
2426{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302427 struct snd_soc_dapm_widget *widget =
2428 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302429 struct snd_soc_dapm_update *update = NULL;
2430
2431 pr_debug("%s: USB Switch enable %ld\n", __func__,
2432 ucontrol->value.integer.value[0]);
2433 if (ucontrol->value.integer.value[0])
2434 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2435 1, update);
2436 else
2437 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol,
2438 0, update);
2439 usb_switch_enable = ucontrol->value.integer.value[0];
2440 return 1;
2441}
2442
2443static int msm_routing_get_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2444 struct snd_ctl_elem_value *ucontrol)
2445{
2446 ucontrol->value.integer.value[0] = pri_mi2s_switch_enable;
2447 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2448 ucontrol->value.integer.value[0]);
2449 return 0;
2450}
2451
2452static int msm_routing_put_pri_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2453 struct snd_ctl_elem_value *ucontrol)
2454{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302455 struct snd_soc_dapm_widget *widget =
2456 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302457 struct snd_soc_dapm_update *update = NULL;
2458
2459 pr_debug("%s: PRI MI2S Switch enable %ld\n", __func__,
2460 ucontrol->value.integer.value[0]);
2461 if (ucontrol->value.integer.value[0])
2462 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2463 update);
2464 else
2465 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2466 update);
2467 pri_mi2s_switch_enable = ucontrol->value.integer.value[0];
2468 return 1;
2469}
2470
2471static int msm_routing_get_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2472 struct snd_ctl_elem_value *ucontrol)
2473{
2474 ucontrol->value.integer.value[0] = sec_mi2s_switch_enable;
2475 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2476 ucontrol->value.integer.value[0]);
2477 return 0;
2478}
2479
2480static int msm_routing_put_sec_mi2s_switch_mixer(struct snd_kcontrol *kcontrol,
2481 struct snd_ctl_elem_value *ucontrol)
2482{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302483 struct snd_soc_dapm_widget *widget =
2484 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302485 struct snd_soc_dapm_update *update = NULL;
2486
2487 pr_debug("%s: SEC MI2S Switch enable %ld\n", __func__,
2488 ucontrol->value.integer.value[0]);
2489 if (ucontrol->value.integer.value[0])
2490 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2491 update);
2492 else
2493 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2494 update);
2495 sec_mi2s_switch_enable = ucontrol->value.integer.value[0];
2496 return 1;
2497}
2498
2499static int msm_routing_get_tert_mi2s_switch_mixer(
2500 struct snd_kcontrol *kcontrol,
2501 struct snd_ctl_elem_value *ucontrol)
2502{
2503 ucontrol->value.integer.value[0] = tert_mi2s_switch_enable;
2504 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2505 ucontrol->value.integer.value[0]);
2506 return 0;
2507}
2508
2509static int msm_routing_put_tert_mi2s_switch_mixer(
2510 struct snd_kcontrol *kcontrol,
2511 struct snd_ctl_elem_value *ucontrol)
2512{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302513 struct snd_soc_dapm_widget *widget =
2514 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302515 struct snd_soc_dapm_update *update = NULL;
2516
2517 pr_debug("%s: TERT MI2S Switch enable %ld\n", __func__,
2518 ucontrol->value.integer.value[0]);
2519 if (ucontrol->value.integer.value[0])
2520 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2521 update);
2522 else
2523 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2524 update);
2525 tert_mi2s_switch_enable = ucontrol->value.integer.value[0];
2526 return 1;
2527}
2528
2529static int msm_routing_get_quat_mi2s_switch_mixer(
2530 struct snd_kcontrol *kcontrol,
2531 struct snd_ctl_elem_value *ucontrol)
2532{
2533 ucontrol->value.integer.value[0] = quat_mi2s_switch_enable;
2534 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2535 ucontrol->value.integer.value[0]);
2536 return 0;
2537}
2538
2539static int msm_routing_put_quat_mi2s_switch_mixer(
2540 struct snd_kcontrol *kcontrol,
2541 struct snd_ctl_elem_value *ucontrol)
2542{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302543 struct snd_soc_dapm_widget *widget =
2544 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302545 struct snd_soc_dapm_update *update = NULL;
2546
2547 pr_debug("%s: QUAT MI2S Switch enable %ld\n", __func__,
2548 ucontrol->value.integer.value[0]);
2549 if (ucontrol->value.integer.value[0])
2550 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2551 update);
2552 else
2553 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2554 update);
2555 quat_mi2s_switch_enable = ucontrol->value.integer.value[0];
2556 return 1;
2557}
2558
Rohit Kumara5077932017-09-10 22:05:05 +05302559static int msm_routing_get_quin_mi2s_switch_mixer(
2560 struct snd_kcontrol *kcontrol,
2561 struct snd_ctl_elem_value *ucontrol)
2562{
2563 ucontrol->value.integer.value[0] = quin_mi2s_switch_enable;
2564 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2565 ucontrol->value.integer.value[0]);
2566 return 0;
2567}
2568
2569static int msm_routing_put_quin_mi2s_switch_mixer(
2570 struct snd_kcontrol *kcontrol,
2571 struct snd_ctl_elem_value *ucontrol)
2572{
2573 struct snd_soc_dapm_widget *widget =
2574 snd_soc_dapm_kcontrol_widget(kcontrol);
2575 struct snd_soc_dapm_update *update = NULL;
2576
2577 pr_debug("%s: QUIN MI2S Switch enable %ld\n", __func__,
2578 ucontrol->value.integer.value[0]);
2579 if (ucontrol->value.integer.value[0])
2580 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2581 update);
2582 else
2583 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2584 update);
2585 quin_mi2s_switch_enable = ucontrol->value.integer.value[0];
2586 return 1;
2587}
2588
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302589static int msm_routing_get_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2590 struct snd_ctl_elem_value *ucontrol)
2591{
2592 ucontrol->value.integer.value[0] = fm_pcmrx_switch_enable;
2593 pr_debug("%s: FM Switch enable %ld\n", __func__,
2594 ucontrol->value.integer.value[0]);
2595 return 0;
2596}
2597
2598static int msm_routing_put_fm_pcmrx_switch_mixer(struct snd_kcontrol *kcontrol,
2599 struct snd_ctl_elem_value *ucontrol)
2600{
Asish Bhattacharya34504582017-08-08 12:55:01 +05302601 struct snd_soc_dapm_widget *widget =
2602 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302603 struct snd_soc_dapm_update *update = NULL;
2604
2605 pr_debug("%s: FM Switch enable %ld\n", __func__,
2606 ucontrol->value.integer.value[0]);
2607 if (ucontrol->value.integer.value[0])
2608 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 1,
2609 update);
2610 else
2611 snd_soc_dapm_mixer_update_power(widget->dapm, kcontrol, 0,
2612 update);
2613 fm_pcmrx_switch_enable = ucontrol->value.integer.value[0];
2614 return 1;
2615}
2616
2617static int msm_routing_lsm_port_get(struct snd_kcontrol *kcontrol,
2618 struct snd_ctl_elem_value *ucontrol)
2619{
2620 ucontrol->value.integer.value[0] = lsm_port_index;
2621 return 0;
2622}
2623
2624static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
2625 struct snd_ctl_elem_value *ucontrol)
2626{
2627 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
2628 int mux = ucontrol->value.enumerated.item[0];
2629 int lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2630
2631 if (mux >= e->items) {
2632 pr_err("%s: Invalid mux value %d\n", __func__, mux);
2633 return -EINVAL;
2634 }
2635
2636 pr_debug("%s: LSM enable %ld\n", __func__,
2637 ucontrol->value.integer.value[0]);
2638 switch (ucontrol->value.integer.value[0]) {
2639 case 1:
2640 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_0_TX;
2641 break;
2642 case 2:
2643 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_1_TX;
2644 break;
2645 case 3:
2646 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_2_TX;
2647 break;
2648 case 4:
2649 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_3_TX;
2650 break;
2651 case 5:
2652 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_4_TX;
2653 break;
2654 case 6:
2655 lsm_port = AFE_PORT_ID_SLIMBUS_MULTI_CHAN_5_TX;
2656 break;
2657 case 7:
2658 lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
2659 break;
2660 case 8:
2661 lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2662 break;
2663 case 9:
2664 lsm_port = ADM_LSM_PORT_ID;
2665 break;
2666 case 10:
2667 lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
2668 break;
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +05302669 case 11:
2670 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
2671 break;
2672 case 12:
2673 lsm_port = AFE_PORT_ID_VA_CODEC_DMA_TX_1;
2674 break;
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302675 case 13:
2676 lsm_port = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2677 break;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302678 case 14:
2679 lsm_port = AFE_PORT_ID_QUINARY_TDM_TX;
2680 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302681 default:
2682 pr_err("Default lsm port");
2683 break;
2684 }
2685 set_lsm_port(lsm_port);
2686 lsm_port_index = ucontrol->value.integer.value[0];
2687
2688 return 0;
2689}
2690
2691static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
2692 struct snd_ctl_elem_value *ucontrol)
2693{
2694 int i;
2695 u16 port_id;
2696 enum afe_mad_type mad_type;
2697
2698 pr_debug("%s: enter\n", __func__);
2699 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2700 if (!strnstr(kcontrol->id.name, lsm_port_text[i],
2701 strlen(lsm_port_text[i])))
2702 break;
2703
2704 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002705 pr_warn("%s: Invalid id name %s\n", __func__,
2706 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302707 return -EINVAL;
2708 }
2709
2710 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2711
2712 /*Check for Tertiary/Quaternary/INT3 TX port*/
2713 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2714 strlen(lsm_port_text[7])))
2715 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2716
2717 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2718 strlen(lsm_port_text[8])))
2719 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2720
2721 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2722 strlen(lsm_port_text[10])))
2723 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2724
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302725 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2726 strlen(lsm_port_text[13])))
2727 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2728
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302729 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2730 strlen(lsm_port_text[14])))
2731 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2732
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302733 mad_type = afe_port_get_mad_type(port_id);
2734 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2735 mad_type);
2736 switch (mad_type) {
2737 case MAD_HW_NONE:
2738 ucontrol->value.integer.value[0] = MADNONE;
2739 break;
2740 case MAD_HW_AUDIO:
2741 ucontrol->value.integer.value[0] = MADAUDIO;
2742 break;
2743 case MAD_HW_BEACON:
2744 ucontrol->value.integer.value[0] = MADBEACON;
2745 break;
2746 case MAD_HW_ULTRASOUND:
2747 ucontrol->value.integer.value[0] = MADULTRASOUND;
2748 break;
2749 case MAD_SW_AUDIO:
2750 ucontrol->value.integer.value[0] = MADSWAUDIO;
2751 break;
2752 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002753 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302754 return -EINVAL;
2755 }
2756 return 0;
2757}
2758
2759static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
2760 struct snd_ctl_elem_value *ucontrol)
2761{
2762 int i;
2763 u16 port_id;
2764 enum afe_mad_type mad_type;
2765
2766 pr_debug("%s: enter\n", __func__);
2767 for (i = 0; i < ARRAY_SIZE(lsm_port_text); i++)
2768 if (strnstr(kcontrol->id.name, lsm_port_text[i],
2769 strlen(lsm_port_text[i])))
2770 break;
2771
2772 if (i-- == ARRAY_SIZE(lsm_port_text)) {
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002773 pr_warn("%s: Invalid id name %s\n", __func__,
2774 kcontrol->id.name);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302775 return -EINVAL;
2776 }
2777
2778 port_id = i * 2 + 1 + SLIMBUS_0_RX;
2779 switch (ucontrol->value.integer.value[0]) {
2780 case MADNONE:
2781 mad_type = MAD_HW_NONE;
2782 break;
2783 case MADAUDIO:
2784 mad_type = MAD_HW_AUDIO;
2785 break;
2786 case MADBEACON:
2787 mad_type = MAD_HW_BEACON;
2788 break;
2789 case MADULTRASOUND:
2790 mad_type = MAD_HW_ULTRASOUND;
2791 break;
2792 case MADSWAUDIO:
2793 mad_type = MAD_SW_AUDIO;
2794 break;
2795 default:
Vidyakumar Athota7b3952d2018-10-10 10:44:08 -07002796 pr_warn("%s: Unknown\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302797 return -EINVAL;
2798 }
2799
2800 /*Check for Tertiary/Quaternary/INT3 TX port*/
2801 if (strnstr(kcontrol->id.name, lsm_port_text[7],
2802 strlen(lsm_port_text[7])))
2803 port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
2804
2805 if (strnstr(kcontrol->id.name, lsm_port_text[8],
2806 strlen(lsm_port_text[8])))
2807 port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
2808
2809 if (strnstr(kcontrol->id.name, lsm_port_text[10],
2810 strlen(lsm_port_text[10])))
2811 port_id = AFE_PORT_ID_INT3_MI2S_TX;
2812
Aditya Bavanarie9454c62018-08-23 23:45:20 +05302813 if (strnstr(kcontrol->id.name, lsm_port_text[13],
2814 strlen(lsm_port_text[13])))
2815 port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
2816
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +05302817 if (strnstr(kcontrol->id.name, lsm_port_text[14],
2818 strlen(lsm_port_text[14])))
2819 port_id = AFE_PORT_ID_QUINARY_TDM_TX;
2820
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302821 pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
2822 mad_type);
2823 return afe_port_set_mad_type(port_id, mad_type);
2824}
2825
2826static const char *const adm_override_chs_text[] = {"Zero", "One", "Two"};
2827
2828static SOC_ENUM_SINGLE_EXT_DECL(slim_7_rx_adm_override_chs,
2829 adm_override_chs_text);
2830
2831static int msm_routing_adm_get_backend_idx(struct snd_kcontrol *kcontrol)
2832{
2833 int backend_id;
2834
2835 if (strnstr(kcontrol->id.name, "SLIM7_RX", sizeof("SLIM7_RX"))) {
2836 backend_id = MSM_BACKEND_DAI_SLIMBUS_7_RX;
2837 } else {
2838 pr_err("%s: unsupported backend id: %s",
2839 __func__, kcontrol->id.name);
2840 return -EINVAL;
2841 }
2842
2843 return backend_id;
2844}
2845static int msm_routing_adm_channel_config_get(
2846 struct snd_kcontrol *kcontrol,
2847 struct snd_ctl_elem_value *ucontrol)
2848{
2849 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2850
2851 if (backend_id >= 0) {
2852 mutex_lock(&routing_lock);
2853 ucontrol->value.integer.value[0] =
2854 msm_bedais[backend_id].adm_override_ch;
2855 pr_debug("%s: adm channel count %ld for BE:%d\n", __func__,
2856 ucontrol->value.integer.value[0], backend_id);
2857 mutex_unlock(&routing_lock);
2858 }
2859
2860 return 0;
2861}
2862
2863static int msm_routing_adm_channel_config_put(
2864 struct snd_kcontrol *kcontrol,
2865 struct snd_ctl_elem_value *ucontrol)
2866{
2867 int backend_id = msm_routing_adm_get_backend_idx(kcontrol);
2868
2869 if (backend_id >= 0) {
2870 mutex_lock(&routing_lock);
2871 msm_bedais[backend_id].adm_override_ch =
2872 ucontrol->value.integer.value[0];
2873 pr_debug("%s:updating BE :%d adm channels: %d\n",
2874 __func__, backend_id,
2875 msm_bedais[backend_id].adm_override_ch);
2876 mutex_unlock(&routing_lock);
2877 }
2878
2879 return 0;
2880}
2881
2882static const struct snd_kcontrol_new adm_channel_config_controls[] = {
2883 SOC_ENUM_EXT("SLIM7_RX ADM Channels", slim_7_rx_adm_override_chs,
2884 msm_routing_adm_channel_config_get,
2885 msm_routing_adm_channel_config_put),
2886};
2887
2888static int msm_routing_slim_0_rx_aanc_mux_get(struct snd_kcontrol *kcontrol,
2889 struct snd_ctl_elem_value *ucontrol)
2890{
2891
2892 mutex_lock(&routing_lock);
2893 ucontrol->value.integer.value[0] = slim0_rx_aanc_fb_port;
2894 mutex_unlock(&routing_lock);
2895 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2896 ucontrol->value.integer.value[0]);
2897 return 0;
2898};
2899
2900static int msm_routing_slim_0_rx_aanc_mux_put(struct snd_kcontrol *kcontrol,
2901 struct snd_ctl_elem_value *ucontrol)
2902{
2903 struct aanc_data aanc_info;
2904
2905 mutex_lock(&routing_lock);
2906 memset(&aanc_info, 0x00, sizeof(aanc_info));
2907 pr_debug("%s: AANC Mux Port %ld\n", __func__,
2908 ucontrol->value.integer.value[0]);
2909 slim0_rx_aanc_fb_port = ucontrol->value.integer.value[0];
2910 if (ucontrol->value.integer.value[0] == 0) {
2911 aanc_info.aanc_active = false;
2912 aanc_info.aanc_tx_port = 0;
2913 aanc_info.aanc_rx_port = 0;
2914 } else {
2915 aanc_info.aanc_active = true;
2916 aanc_info.aanc_rx_port = SLIMBUS_0_RX;
2917 aanc_info.aanc_tx_port =
2918 (SLIMBUS_0_RX - 1 + (slim0_rx_aanc_fb_port * 2));
2919 }
2920 afe_set_aanc_info(&aanc_info);
2921 mutex_unlock(&routing_lock);
2922 return 0;
2923};
2924static int msm_routing_get_port_mixer(struct snd_kcontrol *kcontrol,
2925 struct snd_ctl_elem_value *ucontrol)
2926{
2927 int idx = 0, shift = 0;
2928 struct soc_mixer_control *mc =
2929 (struct soc_mixer_control *)kcontrol->private_value;
2930
Meng Wang05d5e9a2018-03-28 16:45:03 +08002931 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2932 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302933
2934 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2935 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2936 return -EINVAL;
2937 }
2938
2939 if (test_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002940 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302941 ucontrol->value.integer.value[0] = 1;
2942 else
2943 ucontrol->value.integer.value[0] = 0;
2944
Meng Wang05d5e9a2018-03-28 16:45:03 +08002945 pr_debug("%s: shift %x rshift %x val %ld\n", __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302946 ucontrol->value.integer.value[0]);
2947
2948 return 0;
2949}
2950
2951static int msm_routing_put_port_mixer(struct snd_kcontrol *kcontrol,
2952 struct snd_ctl_elem_value *ucontrol)
2953{
2954 int idx = 0, shift = 0;
2955 struct soc_mixer_control *mc =
2956 (struct soc_mixer_control *)kcontrol->private_value;
2957
Meng Wang05d5e9a2018-03-28 16:45:03 +08002958 idx = mc->rshift/(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
2959 shift = mc->rshift%(sizeof(msm_bedais[mc->shift].port_sessions[0]) * 8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302960
2961 if (idx >= BE_DAI_PORT_SESSIONS_IDX_MAX) {
2962 pr_err("%s: Invalid idx = %d\n", __func__, idx);
2963 return -EINVAL;
2964 }
2965
Meng Wang05d5e9a2018-03-28 16:45:03 +08002966 pr_debug("%s: shift 0x%x rshift 0x%x val %ld idx %d reminder shift %d\n",
2967 __func__, mc->shift, mc->rshift,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302968 ucontrol->value.integer.value[0], idx, shift);
2969
2970 if (ucontrol->value.integer.value[0]) {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002971 afe_loopback(1, msm_bedais[mc->shift].port_id,
2972 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302973 set_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002974 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302975 } else {
Meng Wang05d5e9a2018-03-28 16:45:03 +08002976 afe_loopback(0, msm_bedais[mc->shift].port_id,
2977 msm_bedais[mc->rshift].port_id);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302978 clear_bit(shift,
Meng Wang05d5e9a2018-03-28 16:45:03 +08002979 (unsigned long *)&msm_bedais[mc->shift].port_sessions[idx]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05302980 }
2981
2982 return 1;
2983}
2984
2985static int msm_pcm_get_channel_rule_index(struct snd_kcontrol *kcontrol,
2986 struct snd_ctl_elem_value *ucontrol)
2987{
2988 u16 fe_id = 0;
2989
2990 fe_id = ((struct soc_mixer_control *)
2991 kcontrol->private_value)->shift;
2992 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
2993 pr_err("%s: invalid FE %d\n", __func__, fe_id);
2994 return -EINVAL;
2995 }
2996
2997 ucontrol->value.integer.value[0] = channel_mixer[fe_id].rule;
2998
2999 return 0;
3000}
3001
3002static int msm_pcm_put_channel_rule_index(struct snd_kcontrol *kcontrol,
3003 struct snd_ctl_elem_value *ucontrol)
3004{
3005 u16 fe_id = 0;
3006
3007 fe_id = ((struct soc_mixer_control *)
3008 kcontrol->private_value)->shift;
3009 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3010 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3011 return -EINVAL;
3012 }
3013
3014 channel_mixer[fe_id].rule = ucontrol->value.integer.value[0];
3015
3016 return 1;
3017}
3018
3019static int msm_pcm_get_out_chs(struct snd_kcontrol *kcontrol,
3020 struct snd_ctl_elem_value *ucontrol)
3021{
3022 u16 fe_id = 0;
3023
3024 fe_id = ((struct soc_multi_mixer_control *)
3025 kcontrol->private_value)->shift;
3026 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3027 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3028 return -EINVAL;
3029 }
3030
3031 ucontrol->value.integer.value[0] =
3032 channel_mixer[fe_id].output_channel;
3033 return 0;
3034}
3035
3036static int msm_pcm_put_out_chs(struct snd_kcontrol *kcontrol,
3037 struct snd_ctl_elem_value *ucontrol)
3038{
3039 u16 fe_id = 0;
3040
3041 fe_id = ((struct soc_multi_mixer_control *)
3042 kcontrol->private_value)->shift;
3043 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3044 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3045 return -EINVAL;
3046 }
3047
3048 pr_debug("%s: fe_id is %d, output channels = %d\n", __func__,
3049 fe_id,
3050 (unsigned int)(ucontrol->value.integer.value[0]));
3051 channel_mixer[fe_id].output_channel =
3052 (unsigned int)(ucontrol->value.integer.value[0]);
3053
3054 return 1;
3055}
3056
3057static const char *const ch_mixer[] = {"Disable", "Enable"};
3058
3059/* If new backend is added, need update this array */
3060static const char *const be_name[] = {
3061"ZERO", "PRI_I2S_RX", "PRI_I2S_TX", "SLIM_0_RX",
3062"SLIM_0_TX", "HDMI_RX", "INT_BT_SCO_RX", "INT_BT_SCO_TX",
3063"INT_FM_RX", "INT_FM_TX", "AFE_PCM_RX", "AFE_PCM_TX",
3064"AUXPCM_RX", "AUXPCM_TX", "VOICE_PLAYBACK_TX", "VOICE2_PLAYBACK_TX",
3065"INCALL_RECORD_RX", "INCALL_RECORD_TX", "MI2S_RX", "MI2S_TX",
3066"SEC_I2S_RX", "SLIM_1_RX", "SLIM_1_TX", "SLIM_2_RX",
3067"SLIM_2_TX", "SLIM_3_RX", "SLIM_3_TX", "SLIM_4_RX",
3068"SLIM_4_TX", "SLIM_5_RX", "SLIM_5_TX", "SLIM_6_RX",
3069"SLIM_6_TX", "SLIM_7_RX", "SLIM_7_TX", "SLIM_8_RX",
3070"SLIM_8_TX", "EXTPROC_RX", "EXTPROC_TX", "EXPROC_EC_TX",
3071"QUAT_MI2S_RX", "QUAT_MI2S_TX", "SECOND_MI2S_RX", "SECOND_MI2S_TX",
3072"PRI_MI2S_RX", "PRI_MI2S_TX", "TERT_MI2S_RX", "TERT_MI2S_TX",
Ralf Herzc8701f72018-06-20 11:37:35 +02003073"AUDIO_I2S_RX", "SEC_AUXPCM_RX", "SEC_AUXPCM_TX", "PRI_SPDIF_RX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303074"SECOND_MI2S_RX_SD1", "QUIN_MI2S_RX", "QUIN_MI2S_TX", "SENARY_MI2S_TX",
3075"PRI_TDM_RX_0", "PRI_TDM_TX_0", "PRI_TDM_RX_1", "PRI_TDM_TX_1",
3076"PRI_TDM_RX_2", "PRI_TDM_TX_2", "PRI_TDM_RX_3", "PRI_TDM_TX_3",
3077"PRI_TDM_RX_4", "PRI_TDM_TX_4", "PRI_TDM_RX_5", "PRI_TDM_TX_5",
3078"PRI_TDM_RX_6", "PRI_TDM_TX_6", "PRI_TDM_RX_7", "PRI_TDM_TX_7",
3079"SEC_TDM_RX_0", "SEC_TDM_TX_0", "SEC_TDM_RX_1", "SEC_TDM_TX_1",
3080"SEC_TDM_RX_2", "SEC_TDM_TX_2", "SEC_TDM_RX_3", "SEC_TDM_TX_3",
3081"SEC_TDM_RX_4", "SEC_TDM_TX_4", "SEC_TDM_RX_5", "SEC_TDM_TX_5",
3082"SEC_TDM_RX_6", "SEC_TDM_TX_6", "SEC_TDM_RX_7", "SEC_TDM_TX_7",
3083"TERT_TDM_RX_0", "TERT_TDM_TX_0", "TERT_TDM_RX_1", "TERT_TDM_TX_1",
3084"TERT_TDM_RX_2", "TERT_TDM_TX_2", "TERT_TDM_RX_3", "TERT_TDM_TX_3",
3085"TERT_TDM_RX_4", "TERT_TDM_TX_4", "TERT_TDM_RX_5", "TERT_TDM_TX_5",
3086"TERT_TDM_RX_6", "TERT_TDM_TX_6", "TERT_TDM_RX_7", "TERT_TDM_TX_7",
3087"QUAT_TDM_RX_0", "QUAT_TDM_TX_0", "QUAT_TDM_RX_1", "QUAT_TDM_TX_1",
3088"QUAT_TDM_RX_2", "QUAT_TDM_TX_2", "QUAT_TDM_RX_3", "QUAT_TDM_TX_3",
3089"QUAT_TDM_RX_4", "QUAT_TDM_TX_4", "QUAT_TDM_RX_5", "QUAT_TDM_TX_5",
3090"QUAT_TDM_RX_6", "QUAT_TDM_TX_6", "QUAT_TDM_RX_7", "QUAT_TDM_TX_7",
Rohit Kumara5077932017-09-10 22:05:05 +05303091"QUIN_TDM_RX_0", "QUIN_TDM_TX_0", "QUIN_TDM_RX_1", "QUIN_TDM_TX_1",
3092"QUIN_TDM_RX_2", "QUIN_TDM_TX_2", "QUIN_TDM_RX_3", "QUIN_TDM_TX_3",
3093"QUIN_TDM_RX_4", "QUIN_TDM_TX_4", "QUIN_TDM_RX_5", "QUIN_TDM_TX_5",
3094"QUIN_TDM_RX_6", "QUIN_TDM_TX_6", "QUIN_TDM_RX_7", "QUIN_TDM_TX_7",
Karthikeyan Mani57550082018-05-03 18:43:58 -07003095"INT_BT_A2DP_RX", "USB_RX", "USB_TX", "DISPLAY_PORT_RX", "DISPLAY_PORT_RX1",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303096"TERT_AUXPCM_RX", "TERT_AUXPCM_TX", "QUAT_AUXPCM_RX", "QUAT_AUXPCM_TX",
Rohit Kumara5077932017-09-10 22:05:05 +05303097"QUIN_AUXPCM_RX", "QUIN_AUXPCM_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303098"INT0_MI2S_RX", "INT0_MI2S_TX", "INT1_MI2S_RX", "INT1_MI2S_TX",
3099"INT2_MI2S_RX", "INT2_MI2S_TX", "INT3_MI2S_RX", "INT3_MI2S_TX",
3100"INT4_MI2S_RX", "INT4_MI2S_TX", "INT5_MI2S_RX", "INT5_MI2S_TX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303101"INT6_MI2S_RX", "INT6_MI2S_TX", "WSA_CDC_DMA_RX_0",
3102"WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_RX_1", "WSA_CDC_DMA_TX_1",
Ralf Herzc8701f72018-06-20 11:37:35 +02003103"WSA_CDC_DMA_TX_2", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_1",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303104"RX_CDC_DMA_RX_0", "TX_CDC_DMA_TX_0", "RX_CDC_DMA_RX_1", "TX_CDC_DMA_TX_1",
3105"RX_CDC_DMA_RX_2", "TX_CDC_DMA_TX_2", "RX_CDC_DMA_RX_3", "TX_CDC_DMA_TX_3",
3106"RX_CDC_DMA_RX_4", "TX_CDC_DMA_TX_4", "RX_CDC_DMA_RX_5", "TX_CDC_DMA_TX_5",
3107"RX_CDC_DMA_RX_6", "RX_CDC_DMA_RX_7",
3108"PRI_SPDIF_TX", "SEC_SPDIF_RX", "SEC_SPDIF_TX",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303109};
3110
3111static SOC_ENUM_SINGLE_DECL(mm1_channel_mux,
3112 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, ch_mixer);
3113static SOC_ENUM_SINGLE_DECL(mm2_channel_mux,
3114 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA2, ch_mixer);
3115static SOC_ENUM_SINGLE_DECL(mm3_channel_mux,
3116 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA3, ch_mixer);
3117static SOC_ENUM_SINGLE_DECL(mm4_channel_mux,
3118 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA4, ch_mixer);
3119
3120static SOC_ENUM_DOUBLE_DECL(mm1_ch1_enum,
3121 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 0, be_name);
3122static SOC_ENUM_DOUBLE_DECL(mm1_ch2_enum,
3123 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 1, be_name);
3124static SOC_ENUM_DOUBLE_DECL(mm1_ch3_enum,
3125 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 2, be_name);
3126static SOC_ENUM_DOUBLE_DECL(mm1_ch4_enum,
3127 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 3, be_name);
3128static SOC_ENUM_DOUBLE_DECL(mm1_ch5_enum,
3129 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 4, be_name);
3130static SOC_ENUM_DOUBLE_DECL(mm1_ch6_enum,
3131 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 5, be_name);
3132static SOC_ENUM_DOUBLE_DECL(mm1_ch7_enum,
3133 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 6, be_name);
3134static SOC_ENUM_DOUBLE_DECL(mm1_ch8_enum,
3135 SND_SOC_NOPM, MSM_FRONTEND_DAI_MULTIMEDIA1, 7, be_name);
3136
3137static int msm_pcm_get_ctl_enum_info(struct snd_ctl_elem_info *uinfo,
3138 unsigned int channels,
3139 unsigned int items, const char *const names[])
3140{
3141 if (uinfo->value.enumerated.item >= items)
3142 uinfo->value.enumerated.item = items - 1;
3143
3144 WARN(strlen(names[uinfo->value.enumerated.item]) >=
3145 sizeof(uinfo->value.enumerated.name),
3146 "ALSA: too long item name '%s'\n",
3147 names[uinfo->value.enumerated.item]);
3148 strlcpy(uinfo->value.enumerated.name,
3149 names[uinfo->value.enumerated.item],
3150 sizeof(uinfo->value.enumerated.name));
3151 return 0;
3152}
3153
3154static int msm_pcm_channel_mixer_info(struct snd_kcontrol *kcontrol,
3155 struct snd_ctl_elem_info *uinfo)
3156{
3157 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3158
3159 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3160 uinfo->count = 1;
3161
3162 uinfo->value.enumerated.items = ARRAY_SIZE(ch_mixer);
3163 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3164
3165 return 0;
3166}
3167static int msm_pcm_channel_mixer_get(struct snd_kcontrol *kcontrol,
3168 struct snd_ctl_elem_value *ucontrol)
3169{
3170 u16 fe_id = 0;
3171
3172 fe_id = ((struct soc_enum *)
3173 kcontrol->private_value)->shift_l;
3174 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3175 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3176 return -EINVAL;
3177 }
3178
3179 pr_debug("%s: FE %d %s\n", __func__,
3180 fe_id,
3181 channel_mixer[fe_id].enable ? "Enabled" : "Disabled");
3182 ucontrol->value.enumerated.item[0] = channel_mixer[fe_id].enable;
3183 return 0;
3184}
3185
3186static int msm_pcm_channel_mixer_put(struct snd_kcontrol *kcontrol,
3187 struct snd_ctl_elem_value *ucontrol)
3188{
3189 u16 fe_id = 0;
3190
3191 fe_id = ((struct soc_enum *)
3192 kcontrol->private_value)->shift_l;
3193 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3194 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3195 return -EINVAL;
3196 }
3197
3198 channel_mixer[fe_id].enable = ucontrol->value.enumerated.item[0];
3199 pr_debug("%s: %s FE %d\n", __func__,
3200 channel_mixer[fe_id].enable ? "Enable" : "Disable",
3201 fe_id);
3202 return 0;
3203}
3204
3205static int msm_pcm_channel_input_be_info(struct snd_kcontrol *kcontrol,
3206 struct snd_ctl_elem_info *uinfo)
3207{
3208 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3209
3210 uinfo->type = SNDRV_CTL_ELEM_TYPE_ENUMERATED;
3211 uinfo->count = 1;
3212
3213 uinfo->value.enumerated.items = ARRAY_SIZE(be_name);
3214 msm_pcm_get_ctl_enum_info(uinfo, 1, e->items, e->texts);
3215
3216 return 0;
3217}
3218
3219static int msm_pcm_channel_input_be_put(struct snd_kcontrol *kcontrol,
3220 struct snd_ctl_elem_value *ucontrol)
3221{
3222 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3223 u16 fe_id = 0, in_ch = 0;
3224
3225 fe_id = e->shift_l;
3226 in_ch = e->shift_r;
3227 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3228 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3229 return -EINVAL;
3230 }
3231 if (in_ch >= ADM_MAX_CHANNELS) {
3232 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3233 return -EINVAL;
3234 }
3235
3236 channel_input[fe_id][in_ch] = ucontrol->value.enumerated.item[0];
3237 return 1;
3238}
3239
3240static int msm_pcm_channel_input_be_get(struct snd_kcontrol *kcontrol,
3241 struct snd_ctl_elem_value *ucontrol)
3242{
3243 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3244 u16 fe_id = 0, in_ch = 0;
3245
3246 fe_id = e->shift_l;
3247 in_ch = e->shift_r;
3248 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3249 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3250 return -EINVAL;
3251 }
3252 if (in_ch >= ADM_MAX_CHANNELS) {
3253 pr_err("%s: invalid input channel %d\n", __func__, in_ch);
3254 return -EINVAL;
3255 }
3256
3257 ucontrol->value.enumerated.item[0] = channel_input[fe_id][in_ch];
3258 return 1;
3259}
3260
3261
3262static int msm_pcm_channel_weight_info(struct snd_kcontrol *kcontrol,
3263 struct snd_ctl_elem_info *uinfo)
3264{
3265 uinfo->type = SNDRV_CTL_ELEM_TYPE_INTEGER;
3266 uinfo->count = ADM_MAX_CHANNELS;
3267 uinfo->value.integer.min = 0;
3268 uinfo->value.integer.max = WEIGHT_0_DB;
3269
3270 return 0;
3271}
3272
3273static int msm_pcm_channel_weight_put(struct snd_kcontrol *kcontrol,
3274 struct snd_ctl_elem_value *ucontrol)
3275{
3276 u16 fe_id = 0, out_ch = 0;
3277 int i, weight;
3278
3279 fe_id = ((struct soc_multi_mixer_control *)
3280 kcontrol->private_value)->shift;
3281 out_ch = ((struct soc_multi_mixer_control *)
3282 kcontrol->private_value)->rshift;
3283 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3284 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3285 return -EINVAL;
3286 }
3287 if (out_ch >= ADM_MAX_CHANNELS) {
3288 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3289 return -EINVAL;
3290 }
3291
3292 pr_debug("%s: FE_ID: %d, channel weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld\n",
3293 __func__, fe_id,
3294 ucontrol->value.integer.value[0],
3295 ucontrol->value.integer.value[1],
3296 ucontrol->value.integer.value[2],
3297 ucontrol->value.integer.value[3],
3298 ucontrol->value.integer.value[4],
3299 ucontrol->value.integer.value[5],
3300 ucontrol->value.integer.value[6],
3301 ucontrol->value.integer.value[7]);
3302
3303 for (i = 0; i < ADM_MAX_CHANNELS; ++i) {
3304 weight = ucontrol->value.integer.value[i];
3305 channel_mixer[fe_id].channel_weight[out_ch][i] = weight;
3306 pr_debug("%s: FE_ID %d, output %d input %d weight %d\n",
3307 __func__, fe_id, out_ch, i,
3308 channel_mixer[fe_id].channel_weight[out_ch][i]);
3309 }
3310
3311 return 0;
3312}
3313
3314static int msm_pcm_channel_weight_get(struct snd_kcontrol *kcontrol,
3315 struct snd_ctl_elem_value *ucontrol)
3316{
3317 u16 fe_id = 0, out_ch = 0;
3318 int i;
3319
3320 fe_id = ((struct soc_multi_mixer_control *)
3321 kcontrol->private_value)->shift;
3322 out_ch = ((struct soc_multi_mixer_control *)
3323 kcontrol->private_value)->rshift;
3324 if (fe_id >= MSM_FRONTEND_DAI_MM_SIZE) {
3325 pr_err("%s: invalid FE %d\n", __func__, fe_id);
3326 return -EINVAL;
3327 }
3328 if (out_ch >= ADM_MAX_CHANNELS) {
3329 pr_err("%s: invalid input channel %d\n", __func__, out_ch);
3330 return -EINVAL;
3331 }
3332
3333 for (i = 0; i < ADM_MAX_CHANNELS; ++i)
3334 ucontrol->value.integer.value[i] =
3335 channel_mixer[fe_id].channel_weight[out_ch][i];
3336
3337 pr_debug("%s: FE_ID: %d, weight %ld, %ld, %ld, %ld, %ld, %ld, %ld, %ld",
3338 __func__, fe_id,
3339 ucontrol->value.integer.value[0],
3340 ucontrol->value.integer.value[1],
3341 ucontrol->value.integer.value[2],
3342 ucontrol->value.integer.value[3],
3343 ucontrol->value.integer.value[4],
3344 ucontrol->value.integer.value[5],
3345 ucontrol->value.integer.value[6],
3346 ucontrol->value.integer.value[7]);
3347
3348 return 0;
3349}
3350
3351static const struct snd_kcontrol_new channel_mixer_controls[] = {
3352 SOC_SINGLE_EXT("MultiMedia1 Channel Rule", SND_SOC_NOPM,
3353 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3354 msm_pcm_get_channel_rule_index,
3355 msm_pcm_put_channel_rule_index),
3356 SOC_SINGLE_EXT("MultiMedia2 Channel Rule", SND_SOC_NOPM,
3357 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3358 msm_pcm_get_channel_rule_index,
3359 msm_pcm_put_channel_rule_index),
3360 SOC_SINGLE_EXT("MultiMedia3 Channel Rule", SND_SOC_NOPM,
3361 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3362 msm_pcm_get_channel_rule_index,
3363 msm_pcm_put_channel_rule_index),
3364 SOC_SINGLE_EXT("MultiMedia4 Channel Rule", SND_SOC_NOPM,
3365 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3366 msm_pcm_get_channel_rule_index,
3367 msm_pcm_put_channel_rule_index),
3368 SOC_SINGLE_EXT("MultiMedia5 Channel Rule", SND_SOC_NOPM,
3369 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3370 msm_pcm_get_channel_rule_index,
3371 msm_pcm_put_channel_rule_index),
3372 SOC_SINGLE_EXT("MultiMedia6 Channel Rule", SND_SOC_NOPM,
3373 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3374 msm_pcm_get_channel_rule_index,
3375 msm_pcm_put_channel_rule_index),
3376
3377 SOC_SINGLE_EXT("MultiMedia1 Channels", SND_SOC_NOPM,
3378 MSM_FRONTEND_DAI_MULTIMEDIA1, 8, 0,
3379 msm_pcm_get_out_chs,
3380 msm_pcm_put_out_chs),
3381 SOC_SINGLE_EXT("MultiMedia2 Channels", SND_SOC_NOPM,
3382 MSM_FRONTEND_DAI_MULTIMEDIA2, 8, 0,
3383 msm_pcm_get_out_chs,
3384 msm_pcm_put_out_chs),
3385 SOC_SINGLE_EXT("MultiMedia3 Channels", SND_SOC_NOPM,
3386 MSM_FRONTEND_DAI_MULTIMEDIA3, 8, 0,
3387 msm_pcm_get_out_chs,
3388 msm_pcm_put_out_chs),
3389 SOC_SINGLE_EXT("MultiMedia4 Channels", SND_SOC_NOPM,
3390 MSM_FRONTEND_DAI_MULTIMEDIA4, 8, 0,
3391 msm_pcm_get_out_chs,
3392 msm_pcm_put_out_chs),
3393 SOC_SINGLE_EXT("MultiMedia5 Channels", SND_SOC_NOPM,
3394 MSM_FRONTEND_DAI_MULTIMEDIA5, 8, 0,
3395 msm_pcm_get_out_chs,
3396 msm_pcm_put_out_chs),
3397 SOC_SINGLE_EXT("MultiMedia6 Channels", SND_SOC_NOPM,
3398 MSM_FRONTEND_DAI_MULTIMEDIA6, 8, 0,
3399 msm_pcm_get_out_chs,
3400 msm_pcm_put_out_chs),
3401 {
3402 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3403 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3404 .name = "MultiMedia1 Channel Mixer",
3405 .info = msm_pcm_channel_mixer_info,
3406 .get = msm_pcm_channel_mixer_get,
3407 .put = msm_pcm_channel_mixer_put,
3408 .private_value = (unsigned long)&(mm1_channel_mux)
3409 },
3410 {
3411 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3412 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3413 .name = "MultiMedia2 Channel Mixer",
3414 .info = msm_pcm_channel_mixer_info,
3415 .get = msm_pcm_channel_mixer_get,
3416 .put = msm_pcm_channel_mixer_put,
3417 .private_value = (unsigned long)&(mm2_channel_mux)
3418 },
3419 {
3420 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3421 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3422 .name = "MultiMedia3 Channel Mixer",
3423 .info = msm_pcm_channel_mixer_info,
3424 .get = msm_pcm_channel_mixer_get,
3425 .put = msm_pcm_channel_mixer_put,
3426 .private_value = (unsigned long)&(mm3_channel_mux)
3427 },
3428 {
3429 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3430 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3431 .name = "MultiMedia4 Channel Mixer",
3432 .info = msm_pcm_channel_mixer_info,
3433 .get = msm_pcm_channel_mixer_get,
3434 .put = msm_pcm_channel_mixer_put,
3435 .private_value = (unsigned long)&(mm4_channel_mux)
3436 },
3437 {
3438 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3439 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3440 .name = "MultiMedia1 Output Channel1",
3441 .info = msm_pcm_channel_weight_info,
3442 .get = msm_pcm_channel_weight_get,
3443 .put = msm_pcm_channel_weight_put,
3444 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3445 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 0,}
3446 },
3447 {
3448 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3449 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3450 .name = "MultiMedia1 Output Channel2",
3451 .info = msm_pcm_channel_weight_info,
3452 .get = msm_pcm_channel_weight_get,
3453 .put = msm_pcm_channel_weight_put,
3454 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3455 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 1, }
3456 },
3457 {
3458 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3459 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3460 .name = "MultiMedia1 Output Channel3",
3461 .info = msm_pcm_channel_weight_info,
3462 .get = msm_pcm_channel_weight_get,
3463 .put = msm_pcm_channel_weight_put,
3464 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3465 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 2,}
3466 },
3467 {
3468 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3469 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3470 .name = "MultiMedia1 Output Channel4",
3471 .info = msm_pcm_channel_weight_info,
3472 .get = msm_pcm_channel_weight_get,
3473 .put = msm_pcm_channel_weight_put,
3474 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3475 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 3,}
3476 },
3477 {
3478 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3479 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3480 .name = "MultiMedia1 Output Channel5",
3481 .info = msm_pcm_channel_weight_info,
3482 .get = msm_pcm_channel_weight_get,
3483 .put = msm_pcm_channel_weight_put,
3484 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3485 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 4,}
3486 },
3487 {
3488 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3489 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3490 .name = "MultiMedia1 Output Channel6",
3491 .info = msm_pcm_channel_weight_info,
3492 .get = msm_pcm_channel_weight_get,
3493 .put = msm_pcm_channel_weight_put,
3494 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3495 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 5,}
3496 },
3497 {
3498 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3499 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3500 .name = "MultiMedia1 Output Channel7",
3501 .info = msm_pcm_channel_weight_info,
3502 .get = msm_pcm_channel_weight_get,
3503 .put = msm_pcm_channel_weight_put,
3504 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3505 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 6,}
3506 },
3507 {
3508 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3509 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3510 .name = "MultiMedia1 Output Channel8",
3511 .info = msm_pcm_channel_weight_info,
3512 .get = msm_pcm_channel_weight_get,
3513 .put = msm_pcm_channel_weight_put,
3514 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3515 { .shift = MSM_FRONTEND_DAI_MULTIMEDIA1, .rshift = 7,}
3516 },
3517 {
3518 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3519 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3520 .name = "MultiMedia2 Output Channel1",
3521 .info = msm_pcm_channel_weight_info,
3522 .get = msm_pcm_channel_weight_get,
3523 .put = msm_pcm_channel_weight_put,
3524 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3525 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 0,}
3526 },
3527 {
3528 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3529 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3530 .name = "MultiMedia2 Output Channel2",
3531 .info = msm_pcm_channel_weight_info,
3532 .get = msm_pcm_channel_weight_get,
3533 .put = msm_pcm_channel_weight_put,
3534 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3535 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 1,}
3536 },
3537 {
3538 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3539 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3540 .name = "MultiMedia2 Output Channel3",
3541 .info = msm_pcm_channel_weight_info,
3542 .get = msm_pcm_channel_weight_get,
3543 .put = msm_pcm_channel_weight_put,
3544 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3545 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA2, .rshift = 2,}
3546 },
3547 {
3548 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3549 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3550 .name = "MultiMedia3 Output Channel1",
3551 .info = msm_pcm_channel_weight_info,
3552 .get = msm_pcm_channel_weight_get,
3553 .put = msm_pcm_channel_weight_put,
3554 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3555 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 0,}
3556 },
3557 {
3558 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3559 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3560 .name = "MultiMedia3 Output Channel2",
3561 .info = msm_pcm_channel_weight_info,
3562 .get = msm_pcm_channel_weight_get,
3563 .put = msm_pcm_channel_weight_put,
3564 .private_value = (unsigned long)&(struct soc_multi_mixer_control)
3565 {.shift = MSM_FRONTEND_DAI_MULTIMEDIA3, .rshift = 1,}
3566 },
3567 {
3568 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3569 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3570 .name = "MultiMedia1 Channel1",
3571 .info = msm_pcm_channel_input_be_info,
3572 .get = msm_pcm_channel_input_be_get,
3573 .put = msm_pcm_channel_input_be_put,
3574 .private_value = (unsigned long)&(mm1_ch1_enum)
3575 },
3576 {
3577 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3578 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3579 .name = "MultiMedia1 Channel2",
3580 .info = msm_pcm_channel_input_be_info,
3581 .get = msm_pcm_channel_input_be_get,
3582 .put = msm_pcm_channel_input_be_put,
3583 .private_value = (unsigned long)&(mm1_ch2_enum)
3584 },
3585 {
3586 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3587 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3588 .name = "MultiMedia1 Channel3",
3589 .info = msm_pcm_channel_input_be_info,
3590 .get = msm_pcm_channel_input_be_get,
3591 .put = msm_pcm_channel_input_be_put,
3592 .private_value = (unsigned long)&(mm1_ch3_enum)
3593 },
3594 {
3595 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3596 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3597 .name = "MultiMedia1 Channel4",
3598 .info = msm_pcm_channel_input_be_info,
3599 .get = msm_pcm_channel_input_be_get,
3600 .put = msm_pcm_channel_input_be_put,
3601 .private_value = (unsigned long)&(mm1_ch4_enum)
3602 },
3603 {
3604 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3605 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3606 .name = "MultiMedia1 Channel5",
3607 .info = msm_pcm_channel_input_be_info,
3608 .get = msm_pcm_channel_input_be_get,
3609 .put = msm_pcm_channel_input_be_put,
3610 .private_value = (unsigned long)&(mm1_ch5_enum)
3611 },
3612 {
3613 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3614 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3615 .name = "MultiMedia1 Channel6",
3616 .info = msm_pcm_channel_input_be_info,
3617 .get = msm_pcm_channel_input_be_get,
3618 .put = msm_pcm_channel_input_be_put,
3619 .private_value = (unsigned long)&(mm1_ch6_enum)
3620 },
3621 {
3622 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3623 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3624 .name = "MultiMedia1 Channel7",
3625 .info = msm_pcm_channel_input_be_info,
3626 .get = msm_pcm_channel_input_be_get,
3627 .put = msm_pcm_channel_input_be_put,
3628 .private_value = (unsigned long)&(mm1_ch7_enum)
3629 },
3630 {
3631 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
3632 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
3633 .name = "MultiMedia1 Channel8",
3634 .info = msm_pcm_channel_input_be_info,
3635 .get = msm_pcm_channel_input_be_get,
3636 .put = msm_pcm_channel_input_be_put,
3637 .private_value = (unsigned long)&(mm1_ch8_enum)
3638 },
3639};
3640static int msm_ec_ref_ch_get(struct snd_kcontrol *kcontrol,
3641 struct snd_ctl_elem_value *ucontrol)
3642{
3643 ucontrol->value.integer.value[0] = msm_ec_ref_ch;
3644 pr_debug("%s: msm_ec_ref_ch = %ld\n", __func__,
3645 ucontrol->value.integer.value[0]);
3646 return 0;
3647}
3648
3649static int msm_ec_ref_ch_put(struct snd_kcontrol *kcontrol,
3650 struct snd_ctl_elem_value *ucontrol)
3651{
3652 msm_ec_ref_ch = ucontrol->value.integer.value[0];
3653 pr_debug("%s: msm_ec_ref_ch = %d\n", __func__, msm_ec_ref_ch);
3654 adm_num_ec_ref_rx_chans(msm_ec_ref_ch);
3655 return 0;
3656}
3657
3658static const char *const ec_ref_ch_text[] = {"Zero", "One", "Two", "Three",
3659 "Four", "Five", "Six", "Seven", "Eight"};
3660
3661static int msm_ec_ref_bit_format_get(struct snd_kcontrol *kcontrol,
3662 struct snd_ctl_elem_value *ucontrol)
3663{
3664 switch (msm_ec_ref_bit_format) {
3665 case SNDRV_PCM_FORMAT_S24_LE:
3666 ucontrol->value.integer.value[0] = 2;
3667 break;
3668 case SNDRV_PCM_FORMAT_S16_LE:
3669 ucontrol->value.integer.value[0] = 1;
3670 break;
3671 default:
3672 ucontrol->value.integer.value[0] = 0;
3673 break;
3674 }
3675 pr_debug("%s: msm_ec_ref_bit_format = %ld\n",
3676 __func__, ucontrol->value.integer.value[0]);
3677 return 0;
3678}
3679
3680static int msm_ec_ref_bit_format_put(struct snd_kcontrol *kcontrol,
3681 struct snd_ctl_elem_value *ucontrol)
3682{
3683 u16 bit_width = 0;
3684
3685 switch (ucontrol->value.integer.value[0]) {
3686 case 2:
3687 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S24_LE;
3688 break;
3689 case 1:
3690 msm_ec_ref_bit_format = SNDRV_PCM_FORMAT_S16_LE;
3691 break;
3692 default:
3693 msm_ec_ref_bit_format = 0;
3694 break;
3695 }
3696
3697 if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S16_LE)
3698 bit_width = 16;
3699 else if (msm_ec_ref_bit_format == SNDRV_PCM_FORMAT_S24_LE)
3700 bit_width = 24;
3701
3702 pr_debug("%s: msm_ec_ref_bit_format = %d\n",
3703 __func__, msm_ec_ref_bit_format);
3704 adm_ec_ref_rx_bit_width(bit_width);
3705 return 0;
3706}
3707
3708static char const *ec_ref_bit_format_text[] = {"0", "S16_LE", "S24_LE"};
3709
3710static int msm_ec_ref_rate_get(struct snd_kcontrol *kcontrol,
3711 struct snd_ctl_elem_value *ucontrol)
3712{
3713 ucontrol->value.integer.value[0] = msm_ec_ref_sampling_rate;
3714 pr_debug("%s: msm_ec_ref_sampling_rate = %ld\n",
3715 __func__, ucontrol->value.integer.value[0]);
3716 return 0;
3717}
3718
3719static int msm_ec_ref_rate_put(struct snd_kcontrol *kcontrol,
3720 struct snd_ctl_elem_value *ucontrol)
3721{
3722 switch (ucontrol->value.integer.value[0]) {
3723 case 0:
3724 msm_ec_ref_sampling_rate = 0;
3725 break;
3726 case 1:
3727 msm_ec_ref_sampling_rate = 8000;
3728 break;
3729 case 2:
3730 msm_ec_ref_sampling_rate = 16000;
3731 break;
3732 case 3:
3733 msm_ec_ref_sampling_rate = 32000;
3734 break;
3735 case 4:
3736 msm_ec_ref_sampling_rate = 44100;
3737 break;
3738 case 5:
3739 msm_ec_ref_sampling_rate = 48000;
3740 break;
3741 case 6:
3742 msm_ec_ref_sampling_rate = 96000;
3743 break;
3744 case 7:
3745 msm_ec_ref_sampling_rate = 192000;
3746 break;
3747 case 8:
3748 msm_ec_ref_sampling_rate = 384000;
3749 break;
3750 default:
3751 msm_ec_ref_sampling_rate = 48000;
3752 break;
3753 }
3754 pr_debug("%s: msm_ec_ref_sampling_rate = %d\n",
3755 __func__, msm_ec_ref_sampling_rate);
3756 adm_ec_ref_rx_sampling_rate(msm_ec_ref_sampling_rate);
3757 return 0;
3758}
3759
3760static const char *const ec_ref_rate_text[] = {"0", "8000", "16000",
3761 "32000", "44100", "48000", "96000", "192000", "384000"};
3762
3763static const struct soc_enum msm_route_ec_ref_params_enum[] = {
3764 SOC_ENUM_SINGLE_EXT(9, ec_ref_ch_text),
3765 SOC_ENUM_SINGLE_EXT(3, ec_ref_bit_format_text),
3766 SOC_ENUM_SINGLE_EXT(9, ec_ref_rate_text),
3767};
3768
3769static const struct snd_kcontrol_new ec_ref_param_controls[] = {
3770 SOC_ENUM_EXT("EC Reference Channels", msm_route_ec_ref_params_enum[0],
3771 msm_ec_ref_ch_get, msm_ec_ref_ch_put),
3772 SOC_ENUM_EXT("EC Reference Bit Format", msm_route_ec_ref_params_enum[1],
3773 msm_ec_ref_bit_format_get, msm_ec_ref_bit_format_put),
3774 SOC_ENUM_EXT("EC Reference SampleRate", msm_route_ec_ref_params_enum[2],
3775 msm_ec_ref_rate_get, msm_ec_ref_rate_put),
3776};
3777
3778static int msm_routing_ec_ref_rx_get(struct snd_kcontrol *kcontrol,
3779 struct snd_ctl_elem_value *ucontrol)
3780{
3781 pr_debug("%s: ec_ref_rx = %d", __func__, msm_route_ec_ref_rx);
3782 mutex_lock(&routing_lock);
3783 ucontrol->value.integer.value[0] = msm_route_ec_ref_rx;
3784 mutex_unlock(&routing_lock);
3785 return 0;
3786}
3787
3788static int msm_routing_ec_ref_rx_put(struct snd_kcontrol *kcontrol,
3789 struct snd_ctl_elem_value *ucontrol)
3790{
3791 int ec_ref_port_id;
Asish Bhattacharya34504582017-08-08 12:55:01 +05303792 struct snd_soc_dapm_widget *widget =
3793 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303794 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
3795 struct snd_soc_dapm_update *update = NULL;
3796
3797
3798 mutex_lock(&routing_lock);
3799 switch (ucontrol->value.integer.value[0]) {
3800 case 0:
3801 msm_route_ec_ref_rx = 0;
3802 ec_ref_port_id = AFE_PORT_INVALID;
3803 break;
3804 case 1:
3805 msm_route_ec_ref_rx = 1;
3806 ec_ref_port_id = SLIMBUS_0_RX;
3807 break;
3808 case 2:
3809 msm_route_ec_ref_rx = 2;
3810 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_RX;
3811 break;
3812 case 3:
3813 msm_route_ec_ref_rx = 3;
3814 ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
3815 break;
3816 case 4:
3817 msm_route_ec_ref_rx = 4;
3818 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
3819 break;
3820 case 5:
3821 msm_route_ec_ref_rx = 5;
3822 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
3823 break;
3824 case 6:
3825 msm_route_ec_ref_rx = 6;
3826 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
3827 break;
3828 case 7:
3829 msm_route_ec_ref_rx = 7;
3830 ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_RX;
3831 break;
3832 case 9:
3833 msm_route_ec_ref_rx = 9;
3834 ec_ref_port_id = SLIMBUS_5_RX;
3835 break;
3836 case 10:
3837 msm_route_ec_ref_rx = 10;
3838 ec_ref_port_id = SLIMBUS_1_TX;
3839 break;
3840 case 11:
3841 msm_route_ec_ref_rx = 11;
3842 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_TX_1;
3843 break;
3844 case 12:
3845 msm_route_ec_ref_rx = 12;
3846 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX;
3847 break;
3848 case 13:
3849 msm_route_ec_ref_rx = 13;
3850 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_1;
3851 break;
3852 case 14:
3853 msm_route_ec_ref_rx = 14;
3854 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_TDM_RX_2;
3855 break;
3856 case 15:
3857 msm_route_ec_ref_rx = 15;
3858 ec_ref_port_id = SLIMBUS_6_RX;
3859 break;
3860 case 16:
3861 msm_route_ec_ref_rx = 16;
3862 ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_RX;
3863 break;
3864 case 17:
3865 msm_route_ec_ref_rx = 17;
3866 ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_RX;
3867 break;
3868 case 18:
3869 msm_route_ec_ref_rx = 18;
3870 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_TX;
3871 break;
3872 case 19:
3873 msm_route_ec_ref_rx = 19;
3874 ec_ref_port_id = AFE_PORT_ID_USB_RX;
3875 break;
3876 case 20:
3877 msm_route_ec_ref_rx = 20;
3878 ec_ref_port_id = AFE_PORT_ID_INT0_MI2S_RX;
3879 break;
3880 case 21:
3881 msm_route_ec_ref_rx = 21;
3882 ec_ref_port_id = AFE_PORT_ID_INT4_MI2S_RX;
3883 break;
3884 case 22:
3885 msm_route_ec_ref_rx = 22;
3886 ec_ref_port_id = AFE_PORT_ID_INT3_MI2S_TX;
3887 break;
Aalique Grahamee4fd7d52017-11-28 13:24:13 -08003888 case 23:
3889 msm_route_ec_ref_rx = 23;
3890 ec_ref_port_id = AFE_PORT_ID_HDMI_OVER_DP_RX;
3891 break;
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303892 case 24:
3893 msm_route_ec_ref_rx = 24;
3894 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_0;
3895 break;
3896 case 25:
3897 msm_route_ec_ref_rx = 25;
3898 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_RX_1;
3899 break;
3900 case 26:
3901 msm_route_ec_ref_rx = 26;
3902 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_0;
3903 break;
3904 case 27:
3905 msm_route_ec_ref_rx = 27;
3906 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_1;
3907 break;
3908 case 28:
3909 msm_route_ec_ref_rx = 28;
3910 ec_ref_port_id = AFE_PORT_ID_WSA_CODEC_DMA_TX_2;
3911 break;
Zhou Songb167db12018-07-02 17:14:00 +08003912 case 29:
3913 msm_route_ec_ref_rx = 29;
3914 ec_ref_port_id = SLIMBUS_7_RX;
3915 break;
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303916 case 30:
3917 msm_route_ec_ref_rx = 30;
3918 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_0;
3919 break;
3920 case 31:
3921 msm_route_ec_ref_rx = 31;
3922 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_1;
3923 break;
3924 case 32:
3925 msm_route_ec_ref_rx = 32;
3926 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_2;
3927 break;
3928 case 33:
3929 msm_route_ec_ref_rx = 33;
3930 ec_ref_port_id = AFE_PORT_ID_RX_CODEC_DMA_RX_3;
3931 break;
3932 case 34:
3933 msm_route_ec_ref_rx = 34;
3934 ec_ref_port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_0;
3935 break;
Derek Chen2bb55772018-10-24 00:17:15 -07003936 case 35:
3937 msm_route_ec_ref_rx = 35;
3938 ec_ref_port_id = AFE_PORT_ID_TERTIARY_TDM_RX_2;
3939 break;
3940 case 36:
3941 msm_route_ec_ref_rx = 36;
3942 ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
3943 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303944 default:
3945 msm_route_ec_ref_rx = 0; /* NONE */
3946 pr_err("%s EC ref rx %ld not valid\n",
3947 __func__, ucontrol->value.integer.value[0]);
3948 ec_ref_port_id = AFE_PORT_INVALID;
3949 break;
3950 }
3951 adm_ec_ref_rx_id(ec_ref_port_id);
3952 pr_debug("%s: msm_route_ec_ref_rx = %d\n",
3953 __func__, msm_route_ec_ref_rx);
3954 mutex_unlock(&routing_lock);
3955 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol,
3956 msm_route_ec_ref_rx, e, update);
3957 return 0;
3958}
3959
3960static const char *const ec_ref_rx[] = { "None", "SLIM_RX", "I2S_RX",
3961 "PRI_MI2S_TX", "SEC_MI2S_TX",
3962 "TERT_MI2S_TX", "QUAT_MI2S_TX", "SEC_I2S_RX", "PROXY_RX",
3963 "SLIM_5_RX", "SLIM_1_TX", "QUAT_TDM_TX_1",
3964 "QUAT_TDM_RX_0", "QUAT_TDM_RX_1", "QUAT_TDM_RX_2", "SLIM_6_RX",
3965 "TERT_MI2S_RX", "QUAT_MI2S_RX", "TERT_TDM_TX_0", "USB_AUDIO_RX",
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05303966 "INT0_MI2S_RX", "INT4_MI2S_RX", "INT3_MI2S_TX", "DISPLAY_PORT",
3967 "WSA_CDC_DMA_RX_0", "WSA_CDC_DMA_RX_1",
Zhou Songb167db12018-07-02 17:14:00 +08003968 "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_2",
Aditya Bavanari1e84a932018-06-18 19:40:08 +05303969 "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 -07003970 "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 +05303971};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05303972
3973static const struct soc_enum msm_route_ec_ref_rx_enum[] = {
3974 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ec_ref_rx), ec_ref_rx),
3975};
3976
3977static const struct snd_kcontrol_new ext_ec_ref_mux_ul1 =
3978 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL1 MUX Mux",
3979 msm_route_ec_ref_rx_enum[0],
3980 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3981
3982static const struct snd_kcontrol_new ext_ec_ref_mux_ul2 =
3983 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL2 MUX Mux",
3984 msm_route_ec_ref_rx_enum[0],
3985 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3986
3987static const struct snd_kcontrol_new ext_ec_ref_mux_ul3 =
3988 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL3 MUX Mux",
3989 msm_route_ec_ref_rx_enum[0],
3990 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3991
3992static const struct snd_kcontrol_new ext_ec_ref_mux_ul4 =
3993 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL4 MUX Mux",
3994 msm_route_ec_ref_rx_enum[0],
3995 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
3996
3997static const struct snd_kcontrol_new ext_ec_ref_mux_ul5 =
3998 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL5 MUX Mux",
3999 msm_route_ec_ref_rx_enum[0],
4000 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4001
4002static const struct snd_kcontrol_new ext_ec_ref_mux_ul6 =
4003 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL6 MUX Mux",
4004 msm_route_ec_ref_rx_enum[0],
4005 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4006
4007static const struct snd_kcontrol_new ext_ec_ref_mux_ul8 =
4008 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL8 MUX Mux",
4009 msm_route_ec_ref_rx_enum[0],
4010 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4011
4012static const struct snd_kcontrol_new ext_ec_ref_mux_ul9 =
4013 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL9 MUX Mux",
4014 msm_route_ec_ref_rx_enum[0],
4015 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4016
Asish Bhattacharya34504582017-08-08 12:55:01 +05304017static const struct snd_kcontrol_new ext_ec_ref_mux_ul16 =
4018 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL16 MUX Mux",
4019 msm_route_ec_ref_rx_enum[0],
4020 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4021
Laxminath Kasam38070be2017-08-17 18:21:59 +05304022static const struct snd_kcontrol_new ext_ec_ref_mux_ul10 =
4023 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL10 MUX Mux",
4024 msm_route_ec_ref_rx_enum[0],
4025 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4026
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304027static const struct snd_kcontrol_new ext_ec_ref_mux_ul17 =
4028 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL17 MUX Mux",
4029 msm_route_ec_ref_rx_enum[0],
4030 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4031
4032static const struct snd_kcontrol_new ext_ec_ref_mux_ul18 =
4033 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL18 MUX Mux",
4034 msm_route_ec_ref_rx_enum[0],
4035 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4036
4037static const struct snd_kcontrol_new ext_ec_ref_mux_ul19 =
4038 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL19 MUX Mux",
4039 msm_route_ec_ref_rx_enum[0],
4040 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4041
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304042static const struct snd_kcontrol_new ext_ec_ref_mux_ul28 =
4043 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL28 MUX Mux",
4044 msm_route_ec_ref_rx_enum[0],
4045 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4046
4047static const struct snd_kcontrol_new ext_ec_ref_mux_ul29 =
4048 SOC_DAPM_ENUM_EXT("AUDIO_REF_EC_UL29 MUX Mux",
4049 msm_route_ec_ref_rx_enum[0],
4050 msm_routing_ec_ref_rx_get, msm_routing_ec_ref_rx_put);
4051
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304052static int msm_routing_ext_ec_get(struct snd_kcontrol *kcontrol,
4053 struct snd_ctl_elem_value *ucontrol)
4054{
4055 pr_debug("%s: ext_ec_ref_rx = %x\n", __func__, msm_route_ext_ec_ref);
4056
4057 mutex_lock(&routing_lock);
4058 ucontrol->value.integer.value[0] = msm_route_ext_ec_ref;
4059 mutex_unlock(&routing_lock);
4060 return 0;
4061}
4062
4063static int msm_routing_ext_ec_put(struct snd_kcontrol *kcontrol,
4064 struct snd_ctl_elem_value *ucontrol)
4065{
Asish Bhattacharya34504582017-08-08 12:55:01 +05304066 struct snd_soc_dapm_widget *widget =
4067 snd_soc_dapm_kcontrol_widget(kcontrol);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304068 int mux = ucontrol->value.enumerated.item[0];
4069 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
4070 int ret = 1;
4071 bool state = true;
4072 uint16_t ext_ec_ref_port_id;
4073 struct snd_soc_dapm_update *update = NULL;
4074
4075 if (mux >= e->items) {
4076 pr_err("%s: Invalid mux value %d\n", __func__, mux);
4077 return -EINVAL;
4078 }
4079
4080 mutex_lock(&routing_lock);
4081 msm_route_ext_ec_ref = ucontrol->value.integer.value[0];
4082
4083 switch (msm_route_ext_ec_ref) {
4084 case EXT_EC_REF_PRI_MI2S_TX:
4085 ext_ec_ref_port_id = AFE_PORT_ID_PRIMARY_MI2S_TX;
4086 break;
4087 case EXT_EC_REF_SEC_MI2S_TX:
4088 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_MI2S_TX;
4089 break;
4090 case EXT_EC_REF_TERT_MI2S_TX:
4091 ext_ec_ref_port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
4092 break;
4093 case EXT_EC_REF_QUAT_MI2S_TX:
4094 ext_ec_ref_port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
4095 break;
4096 case EXT_EC_REF_QUIN_MI2S_TX:
4097 ext_ec_ref_port_id = AFE_PORT_ID_QUINARY_MI2S_TX;
4098 break;
4099 case EXT_EC_REF_SLIM_1_TX:
4100 ext_ec_ref_port_id = SLIMBUS_1_TX;
4101 break;
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004102 case EXT_EC_REF_SEC_TDM_TX:
4103 ext_ec_ref_port_id = AFE_PORT_ID_SECONDARY_TDM_TX;
4104 break;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304105 case EXT_EC_REF_NONE:
4106 default:
4107 ext_ec_ref_port_id = AFE_PORT_INVALID;
4108 state = false;
4109 break;
4110 }
4111
4112 pr_debug("%s: val = %d ext_ec_ref_port_id = 0x%0x state = %d\n",
4113 __func__, msm_route_ext_ec_ref, ext_ec_ref_port_id, state);
4114
4115 if (!voc_set_ext_ec_ref_port_id(ext_ec_ref_port_id, state)) {
4116 mutex_unlock(&routing_lock);
4117 snd_soc_dapm_mux_update_power(widget->dapm, kcontrol, mux, e,
4118 update);
4119 } else {
4120 ret = -EINVAL;
4121 mutex_unlock(&routing_lock);
4122 }
4123 return ret;
4124}
4125
4126static const char * const ext_ec_ref_rx[] = {"NONE", "PRI_MI2S_TX",
4127 "SEC_MI2S_TX", "TERT_MI2S_TX",
4128 "QUAT_MI2S_TX", "QUIN_MI2S_TX",
Karthikeyan Manibfba0542018-06-20 15:20:28 -07004129 "SLIM_1_TX", "SEC_TDM_TX"};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304130
4131static const struct soc_enum msm_route_ext_ec_ref_rx_enum[] = {
4132 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(ext_ec_ref_rx), ext_ec_ref_rx),
4133};
4134
4135static const struct snd_kcontrol_new voc_ext_ec_mux =
4136 SOC_DAPM_ENUM_EXT("VOC_EXT_EC MUX Mux", msm_route_ext_ec_ref_rx_enum[0],
4137 msm_routing_ext_ec_get, msm_routing_ext_ec_put);
4138
4139
4140static const struct snd_kcontrol_new pri_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004141 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4142 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304143 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4144 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004145 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4146 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304147 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4148 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004149 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4150 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304151 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4152 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004153 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4154 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304155 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4156 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004157 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4158 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304159 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4160 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004161 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4162 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304163 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4164 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004165 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4166 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304167 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4168 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004169 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4170 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304171 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4172 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004173 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4174 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304175 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4176 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004177 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4178 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304179 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004181 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4182 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304183 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004185 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4186 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304187 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004189 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4190 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304191 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004193 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4194 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304195 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004197 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4198 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304199 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004201 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4202 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304203 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004205 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4206 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304207 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004209 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4210 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304211 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004213 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4214 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304215 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4216 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304217 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4218 MSM_BACKEND_DAI_PRI_I2S_RX,
4219 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004221 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4222 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304223 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004225 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4226 MSM_BACKEND_DAI_PRI_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304227 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4228 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304229};
4230
4231static const struct snd_kcontrol_new sec_i2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004232 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4233 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304234 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4235 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004236 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4237 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304238 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4239 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004240 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4241 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304242 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4243 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004244 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4245 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304246 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4247 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004248 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4249 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304250 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4251 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004252 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4253 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304254 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004256 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4257 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304258 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004260 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4261 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304262 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004264 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4265 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304266 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004268 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4269 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304270 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004272 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4273 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304274 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004276 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4277 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304278 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004280 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4281 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304282 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004284 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4285 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304286 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004288 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4289 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304290 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004292 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4293 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304294 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004296 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4297 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304298 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004300 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4301 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304302 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004304 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4305 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304306 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4307 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304308 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4309 MSM_BACKEND_DAI_SEC_I2S_RX,
4310 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004312 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4313 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304314 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004316 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4317 MSM_BACKEND_DAI_SEC_I2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304318 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4319 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304320};
4321
Ralf Herzc8701f72018-06-20 11:37:35 +02004322static const struct snd_kcontrol_new pri_spdif_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004323 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004324 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304325 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4326 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004327 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004328 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304329 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004331 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004332 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304333 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004335 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004336 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304337 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004339 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004340 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304341 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004343 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004344 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304345 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004347 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004348 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304349 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004351 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004352 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304353 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004355 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004356 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304357 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004359 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004360 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304361 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004363 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004364 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304365 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004367 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004368 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304369 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004371 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004372 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304373 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004375 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004376 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304377 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004379 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004380 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304381 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004383 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004384 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304385 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004387 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004388 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304389 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004391 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004392 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304393 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004395 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004396 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304397 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4398 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304399 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4400 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4401 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004403 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004404 MSM_BACKEND_DAI_PRI_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304405 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004407 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
Ralf Herzc8701f72018-06-20 11:37:35 +02004408 MSM_BACKEND_DAI_PRI_SPDIF_RX,
4409 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4410 msm_routing_put_audio_mixer),
4411};
4412
4413static const struct snd_kcontrol_new sec_spdif_rx_mixer_controls[] = {
4414 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4415 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4416 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4417 msm_routing_put_audio_mixer),
4418 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4419 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4420 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4421 msm_routing_put_audio_mixer),
4422 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4423 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4424 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4425 msm_routing_put_audio_mixer),
4426 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4427 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4428 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4429 msm_routing_put_audio_mixer),
4430 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4431 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4432 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4433 msm_routing_put_audio_mixer),
4434 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4435 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4436 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4437 msm_routing_put_audio_mixer),
4438 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4439 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4440 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4441 msm_routing_put_audio_mixer),
4442 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4443 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4444 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4445 msm_routing_put_audio_mixer),
4446 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4447 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4448 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4449 msm_routing_put_audio_mixer),
4450 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4451 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4452 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4453 msm_routing_put_audio_mixer),
4454 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4455 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4456 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4457 msm_routing_put_audio_mixer),
4458 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4459 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4460 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4461 msm_routing_put_audio_mixer),
4462 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4463 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4464 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4465 msm_routing_put_audio_mixer),
4466 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4467 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4468 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4469 msm_routing_put_audio_mixer),
4470 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4471 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4472 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4473 msm_routing_put_audio_mixer),
4474 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4475 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4476 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4477 msm_routing_put_audio_mixer),
4478 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4479 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4480 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4481 msm_routing_put_audio_mixer),
4482 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4483 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4484 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4485 msm_routing_put_audio_mixer),
4486 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4487 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4488 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4489 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304490 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4491 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4492 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4493 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02004494 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4495 MSM_BACKEND_DAI_SEC_SPDIF_RX,
4496 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4497 msm_routing_put_audio_mixer),
4498 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4499 MSM_BACKEND_DAI_SEC_SPDIF_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304500 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4501 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304502};
4503
4504static const struct snd_kcontrol_new slimbus_2_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004505 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4506 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304507 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004509 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4510 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304511 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004513 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4514 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304515 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004517 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4518 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304519 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004521 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4522 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304523 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004525 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4526 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304527 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004529 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4530 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304531 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4532 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004533 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4534 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304535 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4536 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004537 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4538 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304539 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4540 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004541 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4542 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304543 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4544 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004545 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4546 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304547 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004549 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4550 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304551 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004553 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4554 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304555 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004557 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4558 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304559 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004561 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4562 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304563 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004565 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4566 MSM_BACKEND_DAI_SLIMBUS_2_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304567 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4568 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304569 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4570 MSM_BACKEND_DAI_SLIMBUS_2_RX,
4571 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4572 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304573};
4574
4575static const struct snd_kcontrol_new slimbus_5_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004576 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4577 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304578 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004580 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4581 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304582 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004584 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4585 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304586 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004588 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4589 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304590 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004592 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4593 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304594 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004596 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4597 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304598 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004600 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4601 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304602 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4603 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004604 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4605 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304606 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4607 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004608 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4609 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304610 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4611 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004612 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4613 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304614 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4615 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004616 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4617 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304618 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4619 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004620 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4621 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304622 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4623 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004624 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4625 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304626 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4627 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004628 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4629 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304630 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4631 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004632 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4633 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304634 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4635 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004636 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4637 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304638 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4639 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004640 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4641 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304642 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4643 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004644 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4645 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304646 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4647 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004648 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4649 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304650 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4651 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304652 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4653 MSM_BACKEND_DAI_SLIMBUS_5_RX,
4654 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004656 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4657 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304658 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004660 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4661 MSM_BACKEND_DAI_SLIMBUS_5_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304662 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4663 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304664};
4665
4666static const struct snd_kcontrol_new slimbus_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004667 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4668 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304669 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004671 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4672 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304673 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4674 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004675 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4676 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304677 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4678 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004679 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4680 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304681 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4682 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004683 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4684 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304685 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4686 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004687 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4688 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304689 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4690 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004691 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4692 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304693 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4694 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004695 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4696 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304697 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4698 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004699 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4700 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304701 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4702 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004703 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4704 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304705 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4706 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004707 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4708 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304709 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4710 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004711 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4712 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304713 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004715 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4716 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304717 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004719 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4720 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304721 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004723 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4724 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304725 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004727 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4728 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304729 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004731 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4732 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304733 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004735 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4736 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304737 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004739 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4740 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304741 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4742 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304743 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4744 MSM_BACKEND_DAI_SLIMBUS_0_RX,
4745 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004747 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4748 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304749 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004751 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4752 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304753 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4754 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304755};
4756
4757static const struct snd_kcontrol_new mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004758 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4759 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304760 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004762 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4763 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304764 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004766 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4767 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304768 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004770 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4771 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304772 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004774 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4775 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304776 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004778 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4779 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304780 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004782 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4783 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304784 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004786 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4787 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304788 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004790 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4791 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304792 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4793 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004794 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4795 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304796 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4797 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004798 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4799 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304800 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4801 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004802 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4803 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304804 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4805 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004806 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4807 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304808 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4809 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004810 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4811 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304812 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004814 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4815 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304816 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004818 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4819 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304820 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004822 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4823 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304824 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004826 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4827 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304828 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004830 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4831 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304832 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4833 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304834 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4835 MSM_BACKEND_DAI_MI2S_RX,
4836 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004838 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4839 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304840 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004842 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4843 MSM_BACKEND_DAI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304844 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4845 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304846};
4847
4848static const struct snd_kcontrol_new quaternary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004849 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4850 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304851 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004853 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4854 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304855 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004857 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4858 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304859 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004861 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4862 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304863 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004865 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4866 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304867 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004869 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4870 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304871 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004873 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4874 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304875 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004877 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4878 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304879 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004881 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4882 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304883 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004885 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4886 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304887 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004889 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4890 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304891 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004893 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4894 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304895 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004897 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4898 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304899 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004901 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4902 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304903 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004905 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4906 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304907 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004909 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
4910 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304911 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
4912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004913 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
4914 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304915 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
4916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004917 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
4918 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304919 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
4920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004921 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
4922 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304923 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
4924 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05304925 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
4926 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
4927 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
4928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004929 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
4930 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304931 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
4932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004933 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
4934 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05304935 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
4936 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304937};
4938
4939static const struct snd_kcontrol_new quinary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08004940 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
4941 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304942 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
4943 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004944 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
4945 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304946 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
4947 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004948 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
4949 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304950 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
4951 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004952 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
4953 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304954 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
4955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004956 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
4957 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304958 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
4959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004960 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
4961 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304962 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
4963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004964 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
4965 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304966 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
4967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004968 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
4969 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304970 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
4971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004972 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
4973 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304974 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
4975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004976 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
4977 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304978 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
4979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004980 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
4981 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304982 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
4983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004984 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
4985 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304986 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
4987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004988 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
4989 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304990 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
4991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004992 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
4993 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304994 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
4995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08004996 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
4997 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05304998 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
4999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005000 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5001 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305002 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005004 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5005 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305006 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005008 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5009 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305010 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005012 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5013 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305014 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5015 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305016 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5017 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
5018 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005020 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5021 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305022 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005024 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5025 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305026 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5027 msm_routing_put_audio_mixer),
5028
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305029};
5030
5031static const struct snd_kcontrol_new tertiary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005032 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5033 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305034 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005036 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5037 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305038 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005040 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5041 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305042 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005044 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5045 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305046 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005048 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5049 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305050 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005052 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5053 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305054 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005056 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5057 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305058 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005060 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5061 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305062 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005064 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5065 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305066 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005068 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5069 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305070 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005072 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5073 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305074 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005076 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5077 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305078 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005080 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5081 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305082 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5083 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005084 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5085 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305086 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005088 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5089 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305090 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005092 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5093 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305094 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005096 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5097 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305098 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5099 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305100 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5101 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
5102 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005104 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5105 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305106 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005108 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5109 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305110 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5111 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305112};
5113
5114static const struct snd_kcontrol_new secondary_mi2s_rx2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005115 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5116 MSM_BACKEND_DAI_SECONDARY_MI2S_RX_SD1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305117 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5118 msm_routing_put_audio_mixer),
5119};
5120
5121static const struct snd_kcontrol_new secondary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005122 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5123 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305124 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005126 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5127 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305128 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005130 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5131 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305132 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005134 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5135 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305136 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005138 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5139 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305140 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005142 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5143 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305144 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005146 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5147 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305148 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005150 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5151 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305152 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005154 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5155 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305156 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005158 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5159 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305160 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005162 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5163 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305164 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005166 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5167 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305168 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005170 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5171 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305172 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005174 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5175 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305176 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005178 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5179 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305180 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005182 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5183 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305184 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005186 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5187 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305188 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005190 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5191 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305192 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005194 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5195 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305196 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5197 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305198 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5199 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
5200 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005202 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5203 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305204 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005206 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5207 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305208 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5209 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305210};
5211
5212static const struct snd_kcontrol_new primary_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005213 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5214 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305215 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005217 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5218 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305219 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005221 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5222 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305223 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005225 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5226 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305227 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005229 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5230 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305231 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005233 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5234 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305235 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005237 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5238 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305239 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005241 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5242 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305243 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5244 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005245 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5246 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305247 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5248 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005249 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5250 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305251 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5252 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005253 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5254 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305255 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5256 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005257 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5258 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305259 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005261 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5262 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305263 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005265 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5266 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305267 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005269 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5270 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305271 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005273 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5274 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305275 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005277 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5278 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305279 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005281 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5282 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305283 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005285 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5286 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305287 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5288 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305289 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5290 MSM_BACKEND_DAI_PRI_MI2S_RX,
5291 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005293 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5294 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305295 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005297 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5298 MSM_BACKEND_DAI_PRI_MI2S_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305299 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5300 msm_routing_put_audio_mixer),
5301
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305302};
5303
5304static const struct snd_kcontrol_new int0_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005305 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5306 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305307 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005309 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5310 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305311 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005313 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5314 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305315 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005317 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5318 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305319 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005321 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5322 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305323 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005325 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5326 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305327 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005329 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5330 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305331 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005333 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5334 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305335 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005337 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5338 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305339 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005341 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5342 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305343 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005345 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5346 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305347 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005349 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5350 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305351 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005353 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5354 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305355 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005357 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5358 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305359 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005361 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5362 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305363 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005365 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5366 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305367 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5368 msm_routing_put_audio_mixer),
5369};
5370
5371static const struct snd_kcontrol_new int4_mi2s_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005372 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5373 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305374 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005376 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5377 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305378 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005380 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5381 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305382 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005384 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5385 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305386 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005388 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5389 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305390 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005392 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5393 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305394 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005396 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5397 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305398 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005400 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5401 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305402 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005404 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5405 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305406 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005408 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5409 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305410 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005412 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5413 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305414 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005416 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5417 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305418 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005420 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5421 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305422 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005424 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5425 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305426 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005428 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5429 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305430 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005432 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5433 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305434 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5435 msm_routing_put_audio_mixer),
5436};
5437
5438static const struct snd_kcontrol_new hdmi_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005439 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5440 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305441 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005443 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5444 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305445 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005447 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5448 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305449 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005451 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5452 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305453 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005455 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5456 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305457 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005459 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5460 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305461 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005463 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5464 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305465 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005467 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5468 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305469 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005471 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5472 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305473 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005475 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5476 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305477 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005479 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5480 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305481 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005483 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5484 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305485 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005487 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5488 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305489 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005491 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5492 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305493 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005495 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5496 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305497 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005499 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5500 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305501 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005503 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
5504 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305505 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
5506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005507 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
5508 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305509 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
5510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005511 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
5512 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305513 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
5514 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305515 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5516 MSM_BACKEND_DAI_HDMI_RX,
5517 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005519 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
5520 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305521 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
5522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005523 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
5524 MSM_BACKEND_DAI_HDMI_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05305525 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
5526 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305527};
5528
5529static const struct snd_kcontrol_new display_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005530 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5531 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305532 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005534 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5535 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305536 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005538 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5539 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305540 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005542 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5543 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305544 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005546 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5547 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305548 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005550 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5551 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305552 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005554 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5555 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305556 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005558 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5559 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305560 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005562 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5563 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305564 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005566 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5567 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305568 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005570 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5571 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305572 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005574 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5575 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305576 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005578 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5579 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305580 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005582 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5583 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305584 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005586 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5587 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305588 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005590 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5591 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305592 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5593 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305594 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5595 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
5596 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5597 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305598};
5599
Karthikeyan Mani57550082018-05-03 18:43:58 -07005600static const struct snd_kcontrol_new display_port1_mixer_controls[] = {
5601 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5602 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5603 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5604 msm_routing_put_audio_mixer),
5605 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5606 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5607 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5608 msm_routing_put_audio_mixer),
5609 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5610 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5611 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5612 msm_routing_put_audio_mixer),
5613 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5614 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5615 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5616 msm_routing_put_audio_mixer),
5617 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5618 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5619 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5620 msm_routing_put_audio_mixer),
5621 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5622 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5623 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5624 msm_routing_put_audio_mixer),
5625 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5626 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5627 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5628 msm_routing_put_audio_mixer),
5629 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5630 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5631 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5632 msm_routing_put_audio_mixer),
5633 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5634 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5635 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5636 msm_routing_put_audio_mixer),
5637 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5638 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5639 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5640 msm_routing_put_audio_mixer),
5641 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5642 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5643 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5644 msm_routing_put_audio_mixer),
5645 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5646 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5647 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5648 msm_routing_put_audio_mixer),
5649 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5650 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5651 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5652 msm_routing_put_audio_mixer),
5653 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5654 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5655 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5656 msm_routing_put_audio_mixer),
5657 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5658 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5659 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5660 msm_routing_put_audio_mixer),
5661 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5662 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5663 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5664 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305665 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5666 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
5667 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5668 msm_routing_put_audio_mixer),
Karthikeyan Mani57550082018-05-03 18:43:58 -07005669};
5670
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305671 /* incall music delivery mixer */
5672static const struct snd_kcontrol_new incall_music_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005673 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5674 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305675 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005677 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5678 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305679 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005681 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5682 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305683 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5684 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005685 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5686 MSM_BACKEND_DAI_VOICE_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305687 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5688 msm_routing_put_audio_mixer),
5689};
5690
5691static const struct snd_kcontrol_new incall_music2_delivery_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005692 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5693 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305694 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005696 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5697 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305698 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005700 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5701 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305702 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005704 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5705 MSM_BACKEND_DAI_VOICE2_PLAYBACK_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305706 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5707 msm_routing_put_audio_mixer),
5708};
5709
5710static const struct snd_kcontrol_new slimbus_4_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005711 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5712 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305713 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5714 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005715 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5716 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305717 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5718 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005719 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5720 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305721 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5722 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005723 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5724 MSM_BACKEND_DAI_SLIMBUS_4_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305725 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5726 msm_routing_put_audio_mixer),
5727};
5728
5729static const struct snd_kcontrol_new slimbus_6_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08005730 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5731 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305732 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005734 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5735 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005738 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5739 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305740 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005742 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5743 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305744 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5745 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005746 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5747 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305748 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5749 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005750 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5751 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305752 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5753 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005754 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5755 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305756 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5757 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005758 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5759 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305760 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5761 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005762 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5763 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305764 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5765 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005766 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5767 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305768 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5769 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005770 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5771 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305772 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5773 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005774 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5775 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305776 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5777 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005778 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5779 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305780 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5781 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005782 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5783 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305784 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5785 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005786 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5787 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305788 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5789 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08005790 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5791 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305792 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5793 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305794 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5795 MSM_BACKEND_DAI_SLIMBUS_6_RX,
5796 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5797 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05305798};
5799
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305800static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_mixer_controls[] = {
5801 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5802 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5803 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5804 msm_routing_put_audio_mixer),
5805 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5806 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5807 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5808 msm_routing_put_audio_mixer),
5809 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5810 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5811 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5812 msm_routing_put_audio_mixer),
5813 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5814 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5815 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5816 msm_routing_put_audio_mixer),
5817 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5818 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5819 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5820 msm_routing_put_audio_mixer),
5821 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5822 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5823 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5824 msm_routing_put_audio_mixer),
5825 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5826 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5827 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5828 msm_routing_put_audio_mixer),
5829 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5830 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5831 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5832 msm_routing_put_audio_mixer),
5833 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5834 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5835 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5836 msm_routing_put_audio_mixer),
5837 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5838 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5839 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5840 msm_routing_put_audio_mixer),
5841 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5842 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5843 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5844 msm_routing_put_audio_mixer),
5845 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5846 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5847 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5848 msm_routing_put_audio_mixer),
5849 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5850 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5851 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5852 msm_routing_put_audio_mixer),
5853 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5854 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5855 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5856 msm_routing_put_audio_mixer),
5857 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5858 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5859 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5860 msm_routing_put_audio_mixer),
5861 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5862 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5863 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5864 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305865 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5866 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
5867 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5868 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305869};
5870
5871static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_mixer_controls[] = {
5872 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5873 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5874 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5875 msm_routing_put_audio_mixer),
5876 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5877 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5878 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5879 msm_routing_put_audio_mixer),
5880 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5881 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5882 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5883 msm_routing_put_audio_mixer),
5884 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5885 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5886 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5887 msm_routing_put_audio_mixer),
5888 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5889 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5890 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5891 msm_routing_put_audio_mixer),
5892 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5893 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5894 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5895 msm_routing_put_audio_mixer),
5896 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5897 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5898 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5899 msm_routing_put_audio_mixer),
5900 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5901 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5902 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5903 msm_routing_put_audio_mixer),
5904 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5905 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5906 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5907 msm_routing_put_audio_mixer),
5908 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5909 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5910 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5911 msm_routing_put_audio_mixer),
5912 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5913 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5914 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5915 msm_routing_put_audio_mixer),
5916 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5917 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5918 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5919 msm_routing_put_audio_mixer),
5920 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5921 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5922 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5923 msm_routing_put_audio_mixer),
5924 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5925 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5926 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5927 msm_routing_put_audio_mixer),
5928 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
5929 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5930 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
5931 msm_routing_put_audio_mixer),
5932 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
5933 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5934 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
5935 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05305936 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
5937 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
5938 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
5939 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05305940};
5941
Aditya Bavanari1e84a932018-06-18 19:40:08 +05305942static const struct snd_kcontrol_new rx_cdc_dma_rx_0_mixer_controls[] = {
5943 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
5944 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5945 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
5946 msm_routing_put_audio_mixer),
5947 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
5948 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5949 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
5950 msm_routing_put_audio_mixer),
5951 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
5952 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5953 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
5954 msm_routing_put_audio_mixer),
5955 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
5956 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5957 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
5958 msm_routing_put_audio_mixer),
5959 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
5960 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5961 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
5962 msm_routing_put_audio_mixer),
5963 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
5964 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5965 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
5966 msm_routing_put_audio_mixer),
5967 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
5968 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5969 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
5970 msm_routing_put_audio_mixer),
5971 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
5972 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5973 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
5974 msm_routing_put_audio_mixer),
5975 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
5976 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5977 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
5978 msm_routing_put_audio_mixer),
5979 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
5980 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5981 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
5982 msm_routing_put_audio_mixer),
5983 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
5984 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5985 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
5986 msm_routing_put_audio_mixer),
5987 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
5988 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5989 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
5990 msm_routing_put_audio_mixer),
5991 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
5992 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5993 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
5994 msm_routing_put_audio_mixer),
5995 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
5996 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
5997 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
5998 msm_routing_put_audio_mixer),
5999 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6000 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6001 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6002 msm_routing_put_audio_mixer),
6003 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6004 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6005 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6006 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306007 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6008 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
6009 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6010 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306011};
6012
6013static const struct snd_kcontrol_new rx_cdc_dma_rx_1_mixer_controls[] = {
6014 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6015 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6016 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6017 msm_routing_put_audio_mixer),
6018 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6019 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6020 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6021 msm_routing_put_audio_mixer),
6022 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6023 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6024 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6025 msm_routing_put_audio_mixer),
6026 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6027 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6028 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6029 msm_routing_put_audio_mixer),
6030 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6031 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6032 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6033 msm_routing_put_audio_mixer),
6034 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6035 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6036 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6037 msm_routing_put_audio_mixer),
6038 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6039 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6040 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6041 msm_routing_put_audio_mixer),
6042 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6043 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6044 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6045 msm_routing_put_audio_mixer),
6046 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6047 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6048 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6049 msm_routing_put_audio_mixer),
6050 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6051 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6052 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6053 msm_routing_put_audio_mixer),
6054 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6055 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6056 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6057 msm_routing_put_audio_mixer),
6058 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6059 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6060 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6061 msm_routing_put_audio_mixer),
6062 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6063 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6064 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6065 msm_routing_put_audio_mixer),
6066 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6067 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6068 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6069 msm_routing_put_audio_mixer),
6070 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6071 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6072 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6073 msm_routing_put_audio_mixer),
6074 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6075 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6076 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6077 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306078 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6079 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
6080 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6081 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306082};
6083
6084static const struct snd_kcontrol_new rx_cdc_dma_rx_2_mixer_controls[] = {
6085 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6086 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6087 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6088 msm_routing_put_audio_mixer),
6089 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6090 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6091 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6092 msm_routing_put_audio_mixer),
6093 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6094 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6095 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6096 msm_routing_put_audio_mixer),
6097 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6098 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6099 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6100 msm_routing_put_audio_mixer),
6101 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6102 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6103 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6104 msm_routing_put_audio_mixer),
6105 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6106 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6107 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6108 msm_routing_put_audio_mixer),
6109 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6110 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6111 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6112 msm_routing_put_audio_mixer),
6113 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6114 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6115 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6116 msm_routing_put_audio_mixer),
6117 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6118 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6119 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6120 msm_routing_put_audio_mixer),
6121 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6122 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6123 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6124 msm_routing_put_audio_mixer),
6125 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6126 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6127 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6128 msm_routing_put_audio_mixer),
6129 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6130 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6131 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6132 msm_routing_put_audio_mixer),
6133 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6134 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6135 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6136 msm_routing_put_audio_mixer),
6137 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6138 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6139 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6140 msm_routing_put_audio_mixer),
6141 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6142 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6143 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6144 msm_routing_put_audio_mixer),
6145 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6146 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6147 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6148 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306149 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6150 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
6151 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6152 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306153};
6154
6155static const struct snd_kcontrol_new rx_cdc_dma_rx_3_mixer_controls[] = {
6156 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6157 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6158 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6159 msm_routing_put_audio_mixer),
6160 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6161 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6162 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6163 msm_routing_put_audio_mixer),
6164 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6165 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6166 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6167 msm_routing_put_audio_mixer),
6168 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6169 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6170 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6171 msm_routing_put_audio_mixer),
6172 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6173 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6174 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6175 msm_routing_put_audio_mixer),
6176 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6177 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6178 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6179 msm_routing_put_audio_mixer),
6180 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6181 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6182 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6183 msm_routing_put_audio_mixer),
6184 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6185 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6186 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6187 msm_routing_put_audio_mixer),
6188 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6189 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6190 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6191 msm_routing_put_audio_mixer),
6192 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6193 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6194 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6195 msm_routing_put_audio_mixer),
6196 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6197 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6198 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6199 msm_routing_put_audio_mixer),
6200 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6201 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6202 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6203 msm_routing_put_audio_mixer),
6204 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6205 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6206 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6207 msm_routing_put_audio_mixer),
6208 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6209 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6210 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6211 msm_routing_put_audio_mixer),
6212 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6213 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6214 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6215 msm_routing_put_audio_mixer),
6216 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6217 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6218 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6219 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306220 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6221 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
6222 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6223 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306224};
6225
6226static const struct snd_kcontrol_new rx_cdc_dma_rx_4_mixer_controls[] = {
6227 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6228 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6229 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6230 msm_routing_put_audio_mixer),
6231 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6232 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6233 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6234 msm_routing_put_audio_mixer),
6235 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6236 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6237 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6238 msm_routing_put_audio_mixer),
6239 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6240 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6241 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6242 msm_routing_put_audio_mixer),
6243 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6244 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6245 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6246 msm_routing_put_audio_mixer),
6247 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6248 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6249 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6250 msm_routing_put_audio_mixer),
6251 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6252 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6253 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6254 msm_routing_put_audio_mixer),
6255 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6256 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6257 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6258 msm_routing_put_audio_mixer),
6259 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6260 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6261 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6262 msm_routing_put_audio_mixer),
6263 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6264 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6265 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6266 msm_routing_put_audio_mixer),
6267 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6268 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6269 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6270 msm_routing_put_audio_mixer),
6271 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6272 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6273 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6274 msm_routing_put_audio_mixer),
6275 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6276 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6277 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6278 msm_routing_put_audio_mixer),
6279 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6280 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6281 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6282 msm_routing_put_audio_mixer),
6283 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6284 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6285 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6286 msm_routing_put_audio_mixer),
6287 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6288 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6289 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6290 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306291 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6292 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
6293 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6294 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306295};
6296
6297static const struct snd_kcontrol_new rx_cdc_dma_rx_5_mixer_controls[] = {
6298 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6299 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6300 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6301 msm_routing_put_audio_mixer),
6302 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6303 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6304 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6305 msm_routing_put_audio_mixer),
6306 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6307 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6308 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6309 msm_routing_put_audio_mixer),
6310 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6311 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6312 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6313 msm_routing_put_audio_mixer),
6314 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6315 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6316 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6317 msm_routing_put_audio_mixer),
6318 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6319 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6320 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6321 msm_routing_put_audio_mixer),
6322 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6323 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6324 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6325 msm_routing_put_audio_mixer),
6326 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6327 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6328 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6329 msm_routing_put_audio_mixer),
6330 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6331 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6332 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6333 msm_routing_put_audio_mixer),
6334 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6335 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6336 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6337 msm_routing_put_audio_mixer),
6338 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6339 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6340 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6341 msm_routing_put_audio_mixer),
6342 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6343 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6344 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6345 msm_routing_put_audio_mixer),
6346 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6347 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6348 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6349 msm_routing_put_audio_mixer),
6350 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6351 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6352 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6353 msm_routing_put_audio_mixer),
6354 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6355 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6356 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6357 msm_routing_put_audio_mixer),
6358 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6359 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6360 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6361 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306362 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6363 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
6364 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6365 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306366};
6367
6368static const struct snd_kcontrol_new rx_cdc_dma_rx_6_mixer_controls[] = {
6369 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6370 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6371 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6372 msm_routing_put_audio_mixer),
6373 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6374 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6375 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6376 msm_routing_put_audio_mixer),
6377 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6378 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6379 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6380 msm_routing_put_audio_mixer),
6381 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6382 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6383 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6384 msm_routing_put_audio_mixer),
6385 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6386 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6387 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6388 msm_routing_put_audio_mixer),
6389 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6390 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6391 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6392 msm_routing_put_audio_mixer),
6393 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6394 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6395 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6396 msm_routing_put_audio_mixer),
6397 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6398 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6399 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6400 msm_routing_put_audio_mixer),
6401 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6402 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6403 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6404 msm_routing_put_audio_mixer),
6405 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6406 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6407 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6408 msm_routing_put_audio_mixer),
6409 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6410 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6411 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6412 msm_routing_put_audio_mixer),
6413 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6414 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6415 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6416 msm_routing_put_audio_mixer),
6417 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6418 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6419 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6420 msm_routing_put_audio_mixer),
6421 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6422 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6423 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6424 msm_routing_put_audio_mixer),
6425 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6426 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6427 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6428 msm_routing_put_audio_mixer),
6429 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6430 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6431 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6432 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306433 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6434 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
6435 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6436 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306437};
6438
6439static const struct snd_kcontrol_new rx_cdc_dma_rx_7_mixer_controls[] = {
6440 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6441 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6442 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6443 msm_routing_put_audio_mixer),
6444 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6445 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6446 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6447 msm_routing_put_audio_mixer),
6448 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6449 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6450 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6451 msm_routing_put_audio_mixer),
6452 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6453 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6454 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6455 msm_routing_put_audio_mixer),
6456 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6457 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6458 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6459 msm_routing_put_audio_mixer),
6460 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6461 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6462 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6463 msm_routing_put_audio_mixer),
6464 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6465 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6466 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6467 msm_routing_put_audio_mixer),
6468 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6469 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6470 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6471 msm_routing_put_audio_mixer),
6472 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6473 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6474 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6475 msm_routing_put_audio_mixer),
6476 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6477 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6478 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6479 msm_routing_put_audio_mixer),
6480 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6481 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6482 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6483 msm_routing_put_audio_mixer),
6484 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6485 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6486 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6487 msm_routing_put_audio_mixer),
6488 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6489 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6490 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6491 msm_routing_put_audio_mixer),
6492 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6493 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6494 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6495 msm_routing_put_audio_mixer),
6496 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6497 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6498 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6499 msm_routing_put_audio_mixer),
6500 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6501 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6502 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6503 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306504 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6505 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
6506 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6507 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05306508};
6509
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306510static const struct snd_kcontrol_new slimbus_7_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006511 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6512 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306513 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6514 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006515 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6516 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306517 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6518 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006519 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6520 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306521 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6522 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006523 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6524 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306525 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6526 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006527 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6528 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306529 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6530 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006531 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6532 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306533 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6534 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006535 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6536 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306537 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6538 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006539 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6540 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306541 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6542 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006543 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6544 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306545 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6546 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006547 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6548 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306549 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6550 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006551 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6552 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306553 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6554 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006555 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6556 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306557 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6558 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006559 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6560 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306561 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006563 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6564 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306565 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006567 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6568 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306569 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006571 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6572 MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306573 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6574 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306575 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6576 MSM_BACKEND_DAI_SLIMBUS_7_RX,
6577 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6578 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306579};
6580
Surendar Karka3ef3d812018-09-28 18:52:35 +05306581static const struct snd_kcontrol_new slimbus_9_rx_mixer_controls[] = {
6582 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6583 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6584 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6585 msm_routing_put_audio_mixer),
6586 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6587 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6588 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6589 msm_routing_put_audio_mixer),
6590 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6591 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6592 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6593 msm_routing_put_audio_mixer),
6594 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6595 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6596 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6597 msm_routing_put_audio_mixer),
6598 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6599 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6600 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6601 msm_routing_put_audio_mixer),
6602 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6603 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6604 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6605 msm_routing_put_audio_mixer),
6606 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6607 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6608 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6609 msm_routing_put_audio_mixer),
6610 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6611 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6612 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6613 msm_routing_put_audio_mixer),
6614 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6615 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6616 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6617 msm_routing_put_audio_mixer),
6618 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6619 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6620 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6621 msm_routing_put_audio_mixer),
6622 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6623 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6624 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6625 msm_routing_put_audio_mixer),
6626 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6627 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6628 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6629 msm_routing_put_audio_mixer),
6630 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6631 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6632 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6633 msm_routing_put_audio_mixer),
6634 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6635 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6636 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6637 msm_routing_put_audio_mixer),
6638 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6639 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6640 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6641 msm_routing_put_audio_mixer),
6642 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6643 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6644 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6645 msm_routing_put_audio_mixer),
6646 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6647 MSM_BACKEND_DAI_SLIMBUS_9_RX,
6648 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6649 msm_routing_put_audio_mixer),
6650};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306651static const struct snd_kcontrol_new usb_audio_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006652 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6653 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306654 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6655 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006656 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6657 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306658 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6659 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006660 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6661 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306662 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6663 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006664 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6665 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306666 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6667 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006668 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6669 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306670 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006672 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6673 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306674 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006676 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6677 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306678 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006680 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6681 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306682 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006684 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6685 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306686 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006688 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6689 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306690 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006692 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6693 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306694 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006696 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6697 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306698 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006700 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6701 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306702 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006704 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6705 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306706 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006708 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6709 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306710 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006712 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6713 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306714 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6715 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306716 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6717 MSM_BACKEND_DAI_USB_RX,
6718 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6719 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306720};
6721
6722static const struct snd_kcontrol_new int_bt_sco_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006723 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6724 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306725 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6726 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006727 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6728 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306729 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6730 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006731 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6732 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306733 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6734 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006735 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6736 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306737 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006739 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6740 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306741 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006743 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6744 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306745 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006747 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6748 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306749 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006751 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6752 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306753 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006755 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6756 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306757 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006759 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6760 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306761 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006763 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6764 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306765 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006767 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6768 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306769 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006771 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6772 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306773 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006775 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6776 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306777 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006779 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6780 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306781 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006783 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6784 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306785 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006787 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6788 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306789 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006791 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6792 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306793 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006795 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6796 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306797 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6798 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306799 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6800 MSM_BACKEND_DAI_INT_BT_SCO_RX,
6801 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6802 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006803 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6804 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306805 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6806 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006807 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6808 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306809 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6810 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306811};
6812
6813static const struct snd_kcontrol_new int_bt_a2dp_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006814 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6815 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306816 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006818 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6819 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306820 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006822 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6823 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306824 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006826 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6827 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306828 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006830 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6831 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306832 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006834 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6835 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306836 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006838 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6839 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306840 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006842 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6843 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306844 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006846 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6847 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306848 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006850 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6851 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306852 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006854 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6855 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306856 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006858 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6859 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306860 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006862 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6863 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306864 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006866 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6867 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306868 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006870 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6871 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306872 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006874 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6875 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306876 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6877 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306878 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6879 MSM_BACKEND_DAI_INT_BT_A2DP_RX,
6880 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6881 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306882};
6883
6884static const struct snd_kcontrol_new int_fm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006885 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6886 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306887 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006889 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6890 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306891 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006893 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6894 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306895 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006897 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6898 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306899 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006901 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6902 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006905 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6906 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306907 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006909 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
6910 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306911 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
6912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006913 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
6914 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306915 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
6916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006917 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
6918 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306919 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
6920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006921 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
6922 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306923 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
6924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006925 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
6926 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306927 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
6928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006929 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
6930 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306931 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
6932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006933 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
6934 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306935 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
6936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006937 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
6938 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306939 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
6940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006941 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
6942 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306943 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
6944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006945 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
6946 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306947 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
6948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006949 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
6950 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306951 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
6952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006953 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
6954 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306955 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
6956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006957 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
6958 MSM_BACKEND_DAI_INT_FM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306959 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
6960 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05306961 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
6962 MSM_BACKEND_DAI_INT_FM_RX,
6963 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
6964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006965 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
6966 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306967 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
6968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006969 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
6970 MSM_BACKEND_DAI_INT_FM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05306971 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
6972 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306973};
6974
6975static const struct snd_kcontrol_new afe_pcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08006976 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
6977 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306978 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
6979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006980 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
6981 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306982 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
6983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006984 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
6985 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306986 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
6987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006988 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
6989 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306990 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
6991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006992 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
6993 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306994 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
6995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08006996 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
6997 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05306998 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
6999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007000 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7001 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307002 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007004 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7005 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307006 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007008 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7009 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307010 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007012 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7013 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307014 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007016 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7017 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307018 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007020 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7021 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307022 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007024 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7025 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307026 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007028 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7029 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307030 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007032 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7033 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307034 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007036 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7037 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307038 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007040 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7041 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307042 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007044 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7045 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307046 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007048 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7049 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307050 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7051 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307052 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7053 MSM_BACKEND_DAI_AFE_PCM_RX,
7054 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007056 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7057 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307058 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007060 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7061 MSM_BACKEND_DAI_AFE_PCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307062 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7063 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307064};
7065
7066static const struct snd_kcontrol_new auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007067 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7068 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307069 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007071 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7072 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307073 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007075 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7076 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307077 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007079 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7080 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307081 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007083 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7084 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307085 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007087 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7088 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307089 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007091 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7092 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307093 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007095 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7096 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307097 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7098 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007099 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7100 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307101 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7102 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007103 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7104 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307105 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7106 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007107 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7108 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307109 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7110 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007111 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7112 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307113 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7114 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007115 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7116 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307117 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7118 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007119 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7120 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307121 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7122 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007123 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7124 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307125 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7126 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007127 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7128 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307129 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7130 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007131 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7132 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307133 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7134 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007135 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7136 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307137 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7138 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007139 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7140 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307141 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7142 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007143 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7144 MSM_BACKEND_DAI_AUXPCM_RX,
7145 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7146 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307147 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7148 MSM_BACKEND_DAI_AUXPCM_RX,
7149 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007151 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7152 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307153 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007155 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7156 MSM_BACKEND_DAI_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307157 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7158 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307159};
7160
7161static const struct snd_kcontrol_new sec_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007162 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7163 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307164 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007166 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7167 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307168 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7169 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007170 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7171 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307172 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7173 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007174 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7175 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307176 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7177 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007178 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7179 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307180 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7181 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007182 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7183 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307184 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7185 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007186 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7187 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307188 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7189 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007190 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7191 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307192 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7193 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007194 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7195 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307196 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7197 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007198 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7199 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307200 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7201 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007202 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7203 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307204 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7205 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007206 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7207 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307208 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7209 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007210 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7211 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307212 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7213 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007214 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7215 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307216 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7217 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007218 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7219 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307220 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7221 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007222 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7223 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307224 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7225 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007226 SOC_DOUBLE_EXT("MultiMedia17", SND_SOC_NOPM,
7227 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307228 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
7229 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007230 SOC_DOUBLE_EXT("MultiMedia18", SND_SOC_NOPM,
7231 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307232 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
7233 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007234 SOC_DOUBLE_EXT("MultiMedia19", SND_SOC_NOPM,
7235 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307236 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
7237 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007238 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7239 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7240 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7241 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307242 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7243 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
7244 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007246 SOC_DOUBLE_EXT("MultiMedia28", SND_SOC_NOPM,
7247 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307248 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
7249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007250 SOC_DOUBLE_EXT("MultiMedia29", SND_SOC_NOPM,
7251 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +05307252 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
7253 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307254};
7255
7256static const struct snd_kcontrol_new tert_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007257 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7258 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307259 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7260 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007261 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7262 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307263 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7264 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007265 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7266 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307267 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7268 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007269 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7270 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307271 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7272 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007273 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7274 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307275 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7276 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007277 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7278 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307279 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7280 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007281 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7282 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307283 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7284 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007285 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7286 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307287 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7288 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007289 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7290 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307291 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7292 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007293 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7294 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307295 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7296 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007297 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7298 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307299 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7300 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007301 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7302 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307303 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7304 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007305 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7306 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307307 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7308 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007309 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7310 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307311 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007313 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7314 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307315 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007317 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7318 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307319 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7320 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307321 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7322 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
7323 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7324 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307325};
7326
7327static const struct snd_kcontrol_new quat_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007328 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7329 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307330 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7331 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007332 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7333 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307334 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7335 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007336 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7337 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307338 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7339 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007340 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7341 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307342 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7343 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007344 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7345 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307346 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7347 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007348 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7349 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307350 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7351 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007352 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7353 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307354 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7355 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007356 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7357 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307358 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7359 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007360 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7361 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307362 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7363 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007364 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7365 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307366 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7367 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007368 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7369 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307370 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7371 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007372 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7373 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307374 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7375 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007376 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7377 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307378 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7379 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007380 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7381 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307382 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007384 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7385 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307386 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007388 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7389 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307390 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7391 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307392 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7393 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
7394 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7395 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307396};
7397
Rohit Kumara5077932017-09-10 22:05:05 +05307398static const struct snd_kcontrol_new quin_auxpcm_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007399 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7400 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307401 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007403 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7404 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307405 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007407 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7408 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307409 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007411 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7412 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307413 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007415 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7416 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307417 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007419 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7420 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307421 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007423 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7424 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307425 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007427 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7428 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307429 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007431 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7432 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307433 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007435 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7436 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307437 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007439 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7440 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307441 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007443 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7444 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307445 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007447 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7448 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307449 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007451 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7452 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307453 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007455 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7456 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307457 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007459 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7460 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +05307461 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7462 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +05307463 SOC_DOUBLE_EXT("MultiMedia26", SND_SOC_NOPM,
7464 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
7465 MSM_FRONTEND_DAI_MULTIMEDIA26, 1, 0, msm_routing_get_audio_mixer,
7466 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05307467};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307468static const struct snd_kcontrol_new pri_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007469 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7470 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307471 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7472 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007473 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7474 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307475 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7476 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007477 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7478 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307479 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7480 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007481 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7482 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307483 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7484 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007485 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7486 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307487 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7488 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007489 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7490 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307491 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7492 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007493 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7494 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307495 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7496 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007497 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7498 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307499 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7500 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007501 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7502 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307503 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7504 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007505 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7506 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307507 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7508 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007509 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7510 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307511 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7512 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007513 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7514 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307515 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7516 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007517 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7518 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307519 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7520 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007521 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7522 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307523 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7524 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007525 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7526 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307527 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7528 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007529 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7530 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307531 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7532 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007533 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7534 MSM_BACKEND_DAI_PRI_TDM_RX_0,
7535 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7536 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307537};
7538
7539static const struct snd_kcontrol_new pri_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007540 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7541 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307542 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7543 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007544 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7545 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307546 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7547 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007548 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7549 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307550 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7551 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007552 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7553 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307554 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7555 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007556 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7557 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307558 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7559 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007560 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7561 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307562 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7563 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007564 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7565 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307566 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7567 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007568 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7569 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307570 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7571 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007572 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7573 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307574 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7575 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007576 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7577 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307578 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7579 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007580 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7581 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307582 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7583 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007584 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7585 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307586 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7587 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007588 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7589 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307590 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7591 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007592 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7593 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307594 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7595 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007596 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7597 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307598 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7599 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007600 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7601 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307602 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7603 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007604 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7605 MSM_BACKEND_DAI_PRI_TDM_RX_1,
7606 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7607 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307608};
7609
7610static const struct snd_kcontrol_new pri_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007611 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7612 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307613 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007615 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7616 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307617 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007619 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7620 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307621 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007623 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7624 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307625 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007627 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7628 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307629 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007631 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7632 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307633 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007635 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7636 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307637 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007639 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7640 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307641 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007643 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7644 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307645 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007647 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7648 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307649 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007651 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7652 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307653 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007655 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7656 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307657 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7658 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007659 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7660 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307661 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7662 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007663 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7664 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307665 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7666 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007667 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7668 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307669 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7670 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007671 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7672 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307673 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7674 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007675 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7676 MSM_BACKEND_DAI_PRI_TDM_RX_2,
7677 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7678 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307679};
7680
7681static const struct snd_kcontrol_new pri_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007682 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7683 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307684 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007686 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7687 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307688 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007690 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7691 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307692 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007694 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7695 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307696 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007698 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7699 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307700 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7701 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007702 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7703 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307704 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7705 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007706 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7707 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307708 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7709 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007710 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7711 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307712 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7713 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007714 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7715 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307716 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7717 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007718 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7719 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307720 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7721 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007722 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7723 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307724 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7725 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007726 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7727 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307728 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7729 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007730 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7731 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307732 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7733 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007734 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7735 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307736 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7737 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007738 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7739 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307740 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7741 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007742 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7743 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307744 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7745 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007746 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7747 MSM_BACKEND_DAI_PRI_TDM_RX_3,
7748 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7749 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307750};
7751
7752static const struct snd_kcontrol_new pri_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007753 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7754 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307755 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7756 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007757 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7758 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307759 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7760 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007761 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7762 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307763 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007765 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7766 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307767 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007769 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7770 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307771 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007773 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7774 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307775 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007777 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7778 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307779 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007781 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7782 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307783 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007785 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7786 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307787 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007789 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7790 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307791 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007793 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7794 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307795 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007797 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7798 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307799 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007801 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7802 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307803 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007805 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7806 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307807 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007809 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7810 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307811 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007813 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7814 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307815 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7816 msm_routing_put_audio_mixer),
7817};
7818
7819static const struct snd_kcontrol_new sec_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007820 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7821 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307822 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007824 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7825 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307826 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007828 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7829 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307830 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007832 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7833 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307834 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007836 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7837 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307838 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007840 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7841 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307842 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007844 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7845 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307846 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007848 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7849 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307850 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007852 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7853 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307854 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007856 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7857 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307858 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007860 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7861 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307862 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007864 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7865 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307866 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007868 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7869 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307870 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007872 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7873 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307874 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007876 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7877 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307878 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007880 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7881 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307882 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7883 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007884 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7885 MSM_BACKEND_DAI_SEC_TDM_RX_0,
7886 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7887 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307888};
7889
7890static const struct snd_kcontrol_new sec_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007891 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7892 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307893 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7894 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007895 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7896 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307897 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7898 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007899 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7900 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307901 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7902 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007903 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7904 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307905 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7906 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007907 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7908 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307909 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7910 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007911 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7912 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307913 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7914 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007915 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7916 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307917 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7918 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007919 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7920 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307921 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7922 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007923 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7924 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307925 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7926 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007927 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7928 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307929 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
7930 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007931 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
7932 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307933 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
7934 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007935 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
7936 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307937 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
7938 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007939 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
7940 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307941 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
7942 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007943 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
7944 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307945 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
7946 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007947 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
7948 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307949 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
7950 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007951 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
7952 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307953 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
7954 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07007955 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
7956 MSM_BACKEND_DAI_SEC_TDM_RX_1,
7957 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
7958 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307959};
7960
7961static const struct snd_kcontrol_new sec_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08007962 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
7963 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307964 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
7965 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007966 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
7967 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307968 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
7969 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007970 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
7971 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307972 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
7973 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007974 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
7975 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307976 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
7977 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007978 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
7979 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307980 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
7981 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007982 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
7983 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307984 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
7985 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007986 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
7987 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307988 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
7989 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007990 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
7991 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307992 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
7993 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007994 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
7995 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05307996 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
7997 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08007998 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
7999 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308000 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8001 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008002 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8003 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308004 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8005 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008006 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8007 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308008 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8009 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008010 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8011 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308012 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8013 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008014 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8015 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308016 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8017 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008018 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8019 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308020 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8021 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008022 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8023 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308024 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8025 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008026 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8027 MSM_BACKEND_DAI_SEC_TDM_RX_2,
8028 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8029 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308030};
8031
8032static const struct snd_kcontrol_new sec_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008033 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8034 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308035 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8036 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008037 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8038 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308039 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8040 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008041 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8042 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308043 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8044 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008045 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8046 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308047 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8048 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008049 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8050 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308051 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8052 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008053 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8054 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308055 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8056 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008057 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8058 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308059 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8060 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008061 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8062 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308063 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8064 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008065 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8066 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308067 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8068 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008069 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8070 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308071 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8072 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008073 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8074 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308075 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8076 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008077 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8078 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308079 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8080 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008081 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8082 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308083 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8084 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008085 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8086 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308087 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8088 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008089 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8090 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308091 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8092 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008093 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8094 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308095 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8096 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008097 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8098 MSM_BACKEND_DAI_SEC_TDM_RX_3,
8099 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8100 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308101};
8102
8103static const struct snd_kcontrol_new sec_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008104 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8105 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308106 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008108 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8109 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308110 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008112 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8113 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308114 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008116 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8117 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308118 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008120 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8121 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308122 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008124 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8125 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308126 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008128 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8129 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308130 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008132 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8133 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308134 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008136 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8137 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308138 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008140 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8141 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308142 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008144 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8145 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308146 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008148 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8149 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308150 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008152 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8153 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308154 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008156 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8157 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308158 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008160 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8161 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308162 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008164 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8165 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308166 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8167 msm_routing_put_audio_mixer),
8168};
8169
8170static const struct snd_kcontrol_new tert_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008171 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8172 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308173 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008175 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8176 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308177 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008179 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8180 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308181 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008183 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8184 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308185 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008187 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8188 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308189 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008191 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8192 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308193 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008195 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8196 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308197 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008199 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8200 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308201 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008203 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8204 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308205 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008207 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8208 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308209 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008211 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8212 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308213 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008215 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8216 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308217 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008219 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8220 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308221 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008223 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8224 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308225 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008227 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8228 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308229 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008231 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8232 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308233 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8234 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008235 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8236 MSM_BACKEND_DAI_TERT_TDM_RX_0,
8237 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8238 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308239};
8240
8241static const struct snd_kcontrol_new tert_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008242 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8243 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308244 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8245 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008246 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8247 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308248 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8249 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008250 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8251 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308252 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8253 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008254 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8255 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308256 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8257 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008258 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8259 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308260 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8261 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008262 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8263 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308264 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8265 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008266 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8267 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308268 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8269 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008270 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8271 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308272 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8273 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008274 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8275 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308276 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8277 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008278 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8279 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308280 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8281 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008282 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8283 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308284 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8285 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008286 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8287 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308288 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8289 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008290 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8291 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308292 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8293 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008294 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8295 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308296 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8297 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008298 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8299 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308300 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8301 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008302 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8303 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308304 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8305 msm_routing_put_audio_mixer),
8306};
8307
8308static const struct snd_kcontrol_new tert_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008309 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8310 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308311 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8312 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008313 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8314 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308315 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8316 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008317 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8318 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308319 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8320 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008321 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8322 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308323 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8324 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008325 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8326 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308327 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8328 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008329 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8330 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308331 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8332 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008333 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8334 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308335 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8336 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008337 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8338 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308339 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8340 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008341 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8342 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308343 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8344 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008345 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8346 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308347 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8348 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008349 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8350 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308351 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8352 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008353 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8354 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308355 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008357 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8358 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308359 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008361 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8362 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308363 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8364 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008365 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8366 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308367 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8368 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008369 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8370 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308371 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8372 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008373 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8374 MSM_BACKEND_DAI_TERT_TDM_RX_1,
8375 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8376 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308377};
8378
8379static const struct snd_kcontrol_new tert_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008380 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8381 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308382 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8383 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008384 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8385 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308386 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8387 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008388 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8389 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308390 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8391 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008392 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8393 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308394 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8395 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008396 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8397 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308398 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8399 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008400 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8401 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308402 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8403 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008404 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8405 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308406 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8407 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008408 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8409 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308410 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8411 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008412 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8413 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308414 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8415 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008416 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8417 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308418 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8419 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008420 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8421 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308422 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8423 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008424 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8425 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308426 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8427 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008428 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8429 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308430 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8431 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008432 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8433 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308434 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8435 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008436 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8437 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308438 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8439 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008440 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8441 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308442 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8443 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008444 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8445 MSM_BACKEND_DAI_TERT_TDM_RX_2,
8446 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8447 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308448};
8449
8450static const struct snd_kcontrol_new tert_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008451 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8452 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308453 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008455 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8456 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308457 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008459 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8460 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308461 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008463 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8464 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308465 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008467 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8468 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308469 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008471 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8472 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308473 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008475 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8476 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308477 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008479 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8480 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308481 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008483 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8484 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308485 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008487 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8488 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308489 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008491 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8492 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308493 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008495 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8496 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308497 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008499 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8500 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308501 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008503 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8504 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308505 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8506 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008507 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8508 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308509 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8510 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008511 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8512 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308513 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8514 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008515 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8516 MSM_BACKEND_DAI_TERT_TDM_RX_3,
8517 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8518 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308519};
8520
8521static const struct snd_kcontrol_new tert_tdm_rx_4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008522 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8523 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308524 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8525 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008526 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8527 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308528 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8529 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008530 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8531 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308532 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8533 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008534 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8535 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308536 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8537 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008538 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8539 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308540 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8541 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008542 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8543 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308544 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8545 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008546 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8547 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308548 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8549 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008550 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8551 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308552 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8553 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008554 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8555 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308556 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8557 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008558 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8559 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308560 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8561 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008562 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8563 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308564 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8565 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008566 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8567 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308568 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008570 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8571 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308572 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008574 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8575 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308576 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008578 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8579 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308580 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008582 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8583 MSM_BACKEND_DAI_TERT_TDM_RX_4,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308584 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8585 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008586 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8587 MSM_BACKEND_DAI_TERT_TDM_RX_4,
8588 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8589 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308590};
8591
8592static const struct snd_kcontrol_new quat_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008593 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8594 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308595 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008597 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8598 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308599 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008601 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8602 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308603 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008605 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8606 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308607 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008609 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8610 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308611 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008613 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8614 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308615 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008617 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8618 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308619 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008621 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8622 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308623 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008625 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8626 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308627 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008629 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8630 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308631 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008633 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8634 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308635 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008637 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8638 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308639 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008641 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8642 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308643 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008645 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8646 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308647 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008649 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8650 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308651 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008653 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8654 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308655 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008657 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8658 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308659 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8660 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008661 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8662 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
8663 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8664 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308665};
8666
8667static const struct snd_kcontrol_new quat_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008668 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8669 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308670 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8671 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008672 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8673 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308674 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8675 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008676 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8677 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308678 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8679 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008680 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8681 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308682 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8683 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008684 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8685 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308686 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8687 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008688 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8689 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308690 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8691 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008692 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8693 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308694 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8695 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008696 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8697 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308698 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8699 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008700 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8701 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308702 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8703 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008704 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8705 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308706 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8707 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008708 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8709 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308710 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8711 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008712 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8713 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308714 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8715 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008716 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8717 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308718 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8719 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008720 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8721 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308722 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8723 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008724 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8725 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308726 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8727 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008728 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8729 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308730 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8731 msm_routing_put_audio_mixer),
8732};
8733
8734static const struct snd_kcontrol_new quat_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008735 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8736 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308737 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8738 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008739 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8740 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308741 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8742 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008743 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8744 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308745 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8746 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008747 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8748 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308749 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8750 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008751 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8752 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308753 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8754 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008755 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8756 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308757 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8758 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008759 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8760 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308761 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8762 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008763 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8764 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308765 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8766 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008767 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8768 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308769 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8770 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008771 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8772 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308773 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8774 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008775 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8776 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308777 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8778 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008779 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8780 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308781 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8782 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008783 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8784 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308785 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8786 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008787 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8788 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308789 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8790 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008791 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8792 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308793 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8794 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008795 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8796 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308797 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8798 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008799 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8800 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308801 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8802 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008803 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8804 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
8805 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8806 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308807};
8808
8809static const struct snd_kcontrol_new quat_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008810 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8811 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308812 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8813 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008814 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8815 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308816 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8817 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008818 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8819 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308820 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8821 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008822 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8823 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308824 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8825 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008826 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8827 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308828 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8829 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008830 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8831 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308832 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8833 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008834 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8835 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308836 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8837 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008838 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8839 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308840 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8841 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008842 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8843 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308844 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8845 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008846 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8847 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308848 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8849 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008850 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8851 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308852 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8853 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008854 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8855 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308856 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8857 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008858 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8859 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308860 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8861 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008862 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8863 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308864 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8865 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008866 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8867 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308868 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8869 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008870 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8871 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308872 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8873 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008874 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8875 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308876 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8877 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008878 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8879 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
8880 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8881 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308882};
8883
8884static const struct snd_kcontrol_new quat_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008885 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8886 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308887 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008889 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8890 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308891 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008893 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8894 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308895 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8896 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008897 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8898 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308899 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8900 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008901 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8902 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308903 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8904 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008905 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8906 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308907 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8908 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008909 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8910 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308911 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8912 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008913 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8914 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308915 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8916 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008917 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8918 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308919 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8920 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008921 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8922 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308923 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8924 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008925 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
8926 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308927 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
8928 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008929 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
8930 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308931 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
8932 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008933 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
8934 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308935 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
8936 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008937 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
8938 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308939 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
8940 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008941 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
8942 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308943 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
8944 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008945 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
8946 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308947 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
8948 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008949 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
8950 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308951 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
8952 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07008953 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
8954 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
8955 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
8956 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05308957};
8958
Rohit Kumara5077932017-09-10 22:05:05 +05308959static const struct snd_kcontrol_new quin_tdm_rx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08008960 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
8961 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308962 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
8963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008964 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
8965 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308966 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
8967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008968 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
8969 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308970 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
8971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008972 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
8973 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308974 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
8975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008976 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
8977 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308978 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
8979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008980 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
8981 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308982 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
8983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008984 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
8985 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308986 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
8987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008988 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
8989 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308990 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
8991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008992 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
8993 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308994 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
8995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08008996 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
8997 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05308998 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
8999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009000 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9001 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309002 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009004 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9005 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309006 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009008 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9009 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309010 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009012 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9013 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309014 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009016 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9017 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309018 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009020 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9021 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309022 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009024 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9025 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309026 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9027 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009028 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9029 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
9030 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9031 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309032};
9033
9034static const struct snd_kcontrol_new quin_tdm_tx_0_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009035 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9036 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309037 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9038 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009039 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9040 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309041 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9042 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009043 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9044 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309045 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9046 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009047 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9048 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309049 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9050 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009051 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9052 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309053 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9054 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009055 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9056 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309057 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9058 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009059 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9060 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309061 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9062 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009063 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9064 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309065 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9066 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009067 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9068 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309069 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9070 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009071 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9072 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309073 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9074 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009075 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9076 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309077 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9078 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009079 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9080 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309081 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9082 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009083 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9084 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309085 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9086 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009087 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9088 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309089 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9090 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009091 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9092 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309093 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9094 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009095 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9096 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309097 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9098 msm_routing_put_audio_mixer),
9099};
9100
9101static const struct snd_kcontrol_new quin_tdm_rx_1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009102 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9103 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309104 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9105 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009106 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9107 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309108 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9109 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009110 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9111 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309112 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9113 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009114 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9115 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309116 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9117 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009118 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9119 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309120 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9121 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009122 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9123 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309124 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9125 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009126 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9127 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309128 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9129 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009130 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9131 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309132 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9133 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009134 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9135 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309136 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9137 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009138 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9139 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309140 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9141 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009142 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9143 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309144 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9145 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009146 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9147 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309148 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9149 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009150 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9151 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309152 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9153 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009154 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9155 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309156 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9157 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009158 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9159 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309160 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9161 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009162 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9163 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309164 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9165 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009166 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9167 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309168 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9169 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009170 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9171 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
9172 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9173 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309174};
9175
9176static const struct snd_kcontrol_new quin_tdm_rx_2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009177 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9178 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309179 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9180 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009181 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9182 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309183 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9184 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009185 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9186 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309187 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9188 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009189 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9190 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309191 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9192 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009193 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9194 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309195 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9196 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009197 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9198 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309199 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9200 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009201 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9202 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309203 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9204 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009205 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9206 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309207 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9208 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009209 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9210 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309211 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9212 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009213 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9214 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309215 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9216 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009217 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9218 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309219 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9220 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009221 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9222 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309223 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9224 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009225 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9226 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309227 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9228 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009229 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9230 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309231 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9232 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009233 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9234 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309235 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9236 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009237 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9238 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309239 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9240 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009241 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9242 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309243 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9244 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009245 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9246 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
9247 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9248 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309249};
9250
9251static const struct snd_kcontrol_new quin_tdm_rx_3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009252 SOC_DOUBLE_EXT("MultiMedia1", SND_SOC_NOPM,
9253 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309254 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009256 SOC_DOUBLE_EXT("MultiMedia2", SND_SOC_NOPM,
9257 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309258 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009260 SOC_DOUBLE_EXT("MultiMedia3", SND_SOC_NOPM,
9261 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309262 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009264 SOC_DOUBLE_EXT("MultiMedia4", SND_SOC_NOPM,
9265 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309266 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009268 SOC_DOUBLE_EXT("MultiMedia5", SND_SOC_NOPM,
9269 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309270 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
9271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009272 SOC_DOUBLE_EXT("MultiMedia6", SND_SOC_NOPM,
9273 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309274 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
9275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009276 SOC_DOUBLE_EXT("MultiMedia7", SND_SOC_NOPM,
9277 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309278 MSM_FRONTEND_DAI_MULTIMEDIA7, 1, 0, msm_routing_get_audio_mixer,
9279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009280 SOC_DOUBLE_EXT("MultiMedia8", SND_SOC_NOPM,
9281 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309282 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
9283 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009284 SOC_DOUBLE_EXT("MultiMedia9", SND_SOC_NOPM,
9285 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309286 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
9287 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009288 SOC_DOUBLE_EXT("MultiMedia10", SND_SOC_NOPM,
9289 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309290 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
9291 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009292 SOC_DOUBLE_EXT("MultiMedia11", SND_SOC_NOPM,
9293 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309294 MSM_FRONTEND_DAI_MULTIMEDIA11, 1, 0, msm_routing_get_audio_mixer,
9295 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009296 SOC_DOUBLE_EXT("MultiMedia12", SND_SOC_NOPM,
9297 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309298 MSM_FRONTEND_DAI_MULTIMEDIA12, 1, 0, msm_routing_get_audio_mixer,
9299 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009300 SOC_DOUBLE_EXT("MultiMedia13", SND_SOC_NOPM,
9301 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309302 MSM_FRONTEND_DAI_MULTIMEDIA13, 1, 0, msm_routing_get_audio_mixer,
9303 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009304 SOC_DOUBLE_EXT("MultiMedia14", SND_SOC_NOPM,
9305 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309306 MSM_FRONTEND_DAI_MULTIMEDIA14, 1, 0, msm_routing_get_audio_mixer,
9307 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009308 SOC_DOUBLE_EXT("MultiMedia15", SND_SOC_NOPM,
9309 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309310 MSM_FRONTEND_DAI_MULTIMEDIA15, 1, 0, msm_routing_get_audio_mixer,
9311 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009312 SOC_DOUBLE_EXT("MultiMedia16", SND_SOC_NOPM,
9313 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309314 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
9315 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009316 SOC_DOUBLE_EXT("MultiMedia20", SND_SOC_NOPM,
9317 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309318 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
9319 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -07009320 SOC_DOUBLE_EXT("MultiMedia21", SND_SOC_NOPM,
9321 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
9322 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
9323 msm_routing_put_audio_mixer),
Rohit Kumara5077932017-09-10 22:05:05 +05309324};
9325
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309326static const struct snd_kcontrol_new mmul1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009327 SOC_DOUBLE_EXT("PRI_TX", SND_SOC_NOPM,
9328 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309329 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9330 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009331 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9332 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309333 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9334 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009335 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9336 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309337 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9338 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009339 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9340 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309341 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9342 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009343 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9344 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309345 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9346 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009347 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9348 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309349 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9350 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009351 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9352 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309353 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9354 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009355 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9356 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309357 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9358 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009359 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9360 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309361 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9362 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009363 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
9364 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309365 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9366 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009367 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
9368 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309369 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9370 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009371 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
9372 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309373 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9374 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009375 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
9376 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309377 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9378 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009379 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
9380 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309381 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9382 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009383 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9384 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309385 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9386 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009387 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9388 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309389 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9390 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009391 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9392 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309393 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9394 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009395 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9396 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309397 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9398 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009399 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9400 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309401 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9402 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009403 SOC_DOUBLE_EXT("SLIM_4_TX", SND_SOC_NOPM,
9404 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309405 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9406 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009407 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9408 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309409 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9410 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009411 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9412 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309413 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9414 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009415 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9416 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309417 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9418 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009419 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9420 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309421 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9422 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009423 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9424 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309425 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9426 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009427 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9428 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309429 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9430 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009431 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9432 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309433 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9434 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009435 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9436 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309437 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9438 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009439 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9440 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309441 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9442 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009443 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9444 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309445 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9446 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009447 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9448 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309449 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9450 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009451 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9452 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309453 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9454 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009455 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9456 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309457 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9458 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009459 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9460 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309461 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9462 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009463 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9464 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309465 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9466 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009467 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9468 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309469 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9470 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009471 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9472 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309473 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9474 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009475 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9476 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309477 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9478 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009479 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9480 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309481 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9482 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009483 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9484 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309485 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9486 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009487 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9488 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309489 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9490 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009491 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9492 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309493 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9494 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009495 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
9496 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309497 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9498 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009499 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9500 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309501 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9502 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009503 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9504 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309505 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9506 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309507 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9508 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9509 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9510 msm_routing_put_audio_mixer),
9511 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9512 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9513 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9514 msm_routing_put_audio_mixer),
9515 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9516 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9517 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9518 msm_routing_put_audio_mixer),
9519 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9520 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9521 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9522 msm_routing_put_audio_mixer),
9523 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9524 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9525 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9526 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309527 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9528 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9529 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9530 msm_routing_put_audio_mixer),
9531 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9532 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9533 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9534 msm_routing_put_audio_mixer),
9535 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9536 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9537 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9538 msm_routing_put_audio_mixer),
9539 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9540 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9541 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9542 msm_routing_put_audio_mixer),
9543 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9544 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9545 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9546 msm_routing_put_audio_mixer),
9547 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9548 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9549 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9550 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009551 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9552 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9553 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9554 msm_routing_put_audio_mixer),
9555 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9556 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9557 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9558 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309559 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9560 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9561 MSM_FRONTEND_DAI_MULTIMEDIA1, 1, 0, msm_routing_get_audio_mixer,
9562 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309563};
9564
9565static const struct snd_kcontrol_new mmul2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009566 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9567 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309568 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9569 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009570 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9571 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309572 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9573 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009574 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9575 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309576 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9577 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009578 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
9579 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309580 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9581 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009582 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9583 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309584 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9585 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009586 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9587 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309588 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9589 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009590 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9591 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309592 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9593 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009594 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
9595 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309596 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9597 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009598 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9599 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309600 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9601 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009602 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
9603 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309604 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9605 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009606 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
9607 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309608 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9609 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009610 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
9611 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309612 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9613 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009614 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9615 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309616 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9617 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009618 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9619 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309620 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9621 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009622 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9623 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309624 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9625 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009626 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9627 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309628 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9629 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009630 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9631 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309632 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9633 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009634 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9635 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309636 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9637 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009638 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9639 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309640 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9641 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009642 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9643 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309644 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9645 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009646 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9647 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309648 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9649 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009650 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9651 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309652 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9653 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009654 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9655 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309656 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9657 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009658 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9659 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309660 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9661 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009662 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9663 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309664 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9665 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009666 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9667 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309668 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9669 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009670 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9671 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309672 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9673 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009674 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9675 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309676 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9677 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009678 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9679 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309680 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9681 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009682 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9683 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309684 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9685 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009686 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9687 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309688 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9689 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009690 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9691 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309692 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9693 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009694 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
9695 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309696 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9697 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009698 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
9699 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309700 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9701 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309702 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9703 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9704 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9705 msm_routing_put_audio_mixer),
9706 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9707 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9708 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9709 msm_routing_put_audio_mixer),
9710 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9711 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9712 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9713 msm_routing_put_audio_mixer),
9714 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9715 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9716 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9717 msm_routing_put_audio_mixer),
9718 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9719 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9720 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9721 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309722 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9723 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9724 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9725 msm_routing_put_audio_mixer),
9726 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9727 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9728 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9729 msm_routing_put_audio_mixer),
9730 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9731 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9732 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9733 msm_routing_put_audio_mixer),
9734 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9735 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9736 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9737 msm_routing_put_audio_mixer),
9738 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9739 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9740 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9741 msm_routing_put_audio_mixer),
9742 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9743 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9744 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9745 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009746 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9747 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9748 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9749 msm_routing_put_audio_mixer),
9750 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9751 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9752 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9753 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +05309754 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
9755 MSM_BACKEND_DAI_SLIMBUS_9_TX,
9756 MSM_FRONTEND_DAI_MULTIMEDIA2, 1, 0, msm_routing_get_audio_mixer,
9757 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309758};
9759
9760static const struct snd_kcontrol_new mmul3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009761 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9762 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309763 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9764 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009765 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9766 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309767 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9768 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009769 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
9770 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309771 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9772 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009773 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9774 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309775 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9776 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009777 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9778 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309779 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9780 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009781 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
9782 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309783 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9784 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009785 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
9786 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309787 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9788 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009789 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
9790 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309791 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9792 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009793 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
9794 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309795 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9796 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009797 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
9798 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +05309799 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9800 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009801 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9802 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309803 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9804 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009805 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
9806 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309807 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9808 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009809 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
9810 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309811 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9812 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009813 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
9814 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309815 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9816 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009817 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9818 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309819 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9820 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009821 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9822 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309823 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9824 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009825 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9826 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309827 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9828 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009829 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9830 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309831 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9832 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009833 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
9834 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309835 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9836 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009837 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
9838 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309839 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9840 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009841 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
9842 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309843 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9844 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009845 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
9846 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309847 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9848 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009849 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9850 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309851 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9852 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009853 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
9854 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309855 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9856 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009857 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
9858 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309859 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9860 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009861 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
9862 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309863 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9864 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009865 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
9866 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309867 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9868 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009869 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
9870 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309871 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9872 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009873 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
9874 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309875 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9876 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009877 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
9878 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309879 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9880 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009881 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
9882 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +05309883 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9884 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009885 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
9886 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +05309887 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9888 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009889 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
9890 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +05309891 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9892 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009893 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
9894 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +05309895 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9896 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +05309897 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
9898 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
9899 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9900 msm_routing_put_audio_mixer),
9901 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
9902 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
9903 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9904 msm_routing_put_audio_mixer),
9905 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
9906 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
9907 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9908 msm_routing_put_audio_mixer),
9909 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
9910 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
9911 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9912 msm_routing_put_audio_mixer),
9913 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
9914 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
9915 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9916 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +05309917 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
9918 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
9919 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9920 msm_routing_put_audio_mixer),
9921 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
9922 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
9923 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9924 msm_routing_put_audio_mixer),
9925 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
9926 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
9927 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9928 msm_routing_put_audio_mixer),
9929 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
9930 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
9931 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9932 msm_routing_put_audio_mixer),
9933 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
9934 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
9935 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9936 msm_routing_put_audio_mixer),
9937 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
9938 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
9939 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9940 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +02009941 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
9942 MSM_BACKEND_DAI_PRI_SPDIF_TX,
9943 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9944 msm_routing_put_audio_mixer),
9945 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
9946 MSM_BACKEND_DAI_SEC_SPDIF_TX,
9947 MSM_FRONTEND_DAI_MULTIMEDIA3, 1, 0, msm_routing_get_audio_mixer,
9948 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309949};
9950
9951static const struct snd_kcontrol_new mmul4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +08009952 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
9953 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309954 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9955 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009956 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
9957 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309958 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9959 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009960 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
9961 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309962 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9963 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009964 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
9965 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309966 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9967 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009968 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
9969 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309970 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9971 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009972 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
9973 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309974 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9975 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009976 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
9977 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309978 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9979 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009980 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
9981 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309982 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9983 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009984 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
9985 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309986 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9987 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009988 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
9989 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309990 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9991 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009992 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
9993 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309994 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9995 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +08009996 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
9997 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +05309998 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
9999 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010000 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10001 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010002 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10003 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010004 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10005 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010006 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10007 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010008 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10009 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010010 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10011 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010012 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10013 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010014 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10015 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010016 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10017 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010018 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10019 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010020 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10021 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010022 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10023 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010024 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10025 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010026 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10027 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010028 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10029 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010030 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10031 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010032 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10033 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010034 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10035 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010036 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10037 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010038 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10039 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010040 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10041 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010042 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10043 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010044 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10045 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010046 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10047 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010048 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10049 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010050 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10051 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010052 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10053 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010054 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10055 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010056 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10057 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010058 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10059 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010060 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10061 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010062 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10063 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010064 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10065 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010066 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10067 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010068 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10069 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010070 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10071 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010072 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10073 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010074 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10075 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010076 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10077 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010078 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10079 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010080 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10081 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010082 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10083 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010084 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10085 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10086 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10087 msm_routing_put_audio_mixer),
10088 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10089 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10090 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10091 msm_routing_put_audio_mixer),
10092 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10093 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10094 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10095 msm_routing_put_audio_mixer),
10096 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10097 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10098 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10099 msm_routing_put_audio_mixer),
10100 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10101 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10102 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10103 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010104 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10105 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10106 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10107 msm_routing_put_audio_mixer),
10108 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10109 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10110 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10111 msm_routing_put_audio_mixer),
10112 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10113 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10114 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10115 msm_routing_put_audio_mixer),
10116 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10117 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10118 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10119 msm_routing_put_audio_mixer),
10120 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10121 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10122 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10123 msm_routing_put_audio_mixer),
10124 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10125 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10126 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10127 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010128 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10129 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10130 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10131 msm_routing_put_audio_mixer),
10132 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10133 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10134 MSM_FRONTEND_DAI_MULTIMEDIA4, 1, 0, msm_routing_get_audio_mixer,
10135 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010136};
10137
10138static const struct snd_kcontrol_new mmul5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010139 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10140 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010141 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10142 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010143 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10144 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010145 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10146 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010147 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10148 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010149 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10150 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010151 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10152 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010153 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10154 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010155 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10156 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010157 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10158 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010159 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10160 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010161 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10162 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010163 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10164 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010165 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10166 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010167 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
10168 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010169 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10170 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010171 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10172 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010173 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10174 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010175 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX", SND_SOC_NOPM,
10176 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010177 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10178 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010179 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10180 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010181 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10182 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010183 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10184 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010185 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10186 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010187 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10188 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010189 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10190 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010191 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10192 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010193 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10194 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010195 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10196 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010197 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10198 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010199 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10200 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010201 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10202 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010203 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10204 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010205 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10206 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010207 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10208 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010209 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10210 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010211 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10212 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010213 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10214 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010215 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10216 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010217 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10218 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010219 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10220 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010221 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10222 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010223 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10224 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010225 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10226 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010227 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10228 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010229 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10230 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010231 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10232 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010233 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10234 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010235 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10236 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010237 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10238 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010239 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10240 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010241 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10242 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010243 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10244 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010245 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10246 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010247 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10248 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010249 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10250 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010251 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10252 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010253 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10254 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010255 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10256 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010257 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10258 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010259 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10260 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010261 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10262 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010263 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10264 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010265 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10266 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010267 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10268 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010269 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10270 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010271 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10272 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010273 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10274 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010275 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10276 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010277 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10278 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010279 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10280 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010281 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10282 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010283 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10284 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010285 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10286 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010287 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
10288 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010289 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10290 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010291 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10292 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010293 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10294 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010295 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10296 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10297 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10298 msm_routing_put_audio_mixer),
10299 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10300 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10301 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10302 msm_routing_put_audio_mixer),
10303 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10304 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10305 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10306 msm_routing_put_audio_mixer),
10307 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10308 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10309 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10310 msm_routing_put_audio_mixer),
10311 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10312 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10313 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10314 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010315 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10316 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10317 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10318 msm_routing_put_audio_mixer),
10319 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10320 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10321 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10322 msm_routing_put_audio_mixer),
10323 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10324 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10325 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10326 msm_routing_put_audio_mixer),
10327 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10328 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10329 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10330 msm_routing_put_audio_mixer),
10331 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10332 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10333 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10334 msm_routing_put_audio_mixer),
10335 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10336 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10337 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10338 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010339 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10340 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10341 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10342 msm_routing_put_audio_mixer),
10343 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10344 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10345 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10346 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010347 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10348 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10349 MSM_FRONTEND_DAI_MULTIMEDIA5, 1, 0, msm_routing_get_audio_mixer,
10350 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010351};
10352
10353static const struct snd_kcontrol_new mmul6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010354 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10355 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010356 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10357 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010358 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10359 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010360 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10361 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010362 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10363 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010364 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10365 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010366 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10367 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010368 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10369 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010370 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10371 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010372 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10373 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010374 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10375 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010376 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10377 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010378 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10379 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010380 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10381 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010382 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10383 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010384 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10385 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010386 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
10387 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053010388 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10389 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010390 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
10391 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010392 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10393 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010394 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
10395 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010396 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10397 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010398 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
10399 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010400 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10401 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010402 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
10403 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010404 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10405 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010406 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10407 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010408 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10409 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010410 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10411 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010412 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10413 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010414 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10415 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010416 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10417 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010418 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10419 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010420 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10421 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010422 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10423 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010424 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10425 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010426 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10427 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010428 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10429 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010430 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10431 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010432 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10433 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010434 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10435 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010436 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10437 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010438 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10439 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010440 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10441 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010442 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10443 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010444 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10445 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010446 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10447 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010448 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10449 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010450 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10451 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010452 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10453 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010454 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10455 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010456 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10457 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010458 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10459 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010460 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010462 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10463 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010464 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010466 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10467 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010468 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010470 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10471 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010472 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010474 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10475 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010476 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010478 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10479 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010480 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010482 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10483 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010484 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010486 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10487 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010488 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10489 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010490 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10491 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10492 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10493 msm_routing_put_audio_mixer),
10494 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10495 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10496 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10497 msm_routing_put_audio_mixer),
10498 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10499 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10500 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10501 msm_routing_put_audio_mixer),
10502 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10503 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10504 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10505 msm_routing_put_audio_mixer),
10506 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10507 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10508 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10509 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010510 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10511 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10512 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10513 msm_routing_put_audio_mixer),
10514 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10515 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10516 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10517 msm_routing_put_audio_mixer),
10518 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10519 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10520 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10521 msm_routing_put_audio_mixer),
10522 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10523 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10524 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10525 msm_routing_put_audio_mixer),
10526 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10527 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10528 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10529 msm_routing_put_audio_mixer),
10530 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10531 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10532 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10533 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010534 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10535 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10536 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10537 msm_routing_put_audio_mixer),
10538 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10539 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10540 MSM_FRONTEND_DAI_MULTIMEDIA6, 1, 0, msm_routing_get_audio_mixer,
10541 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010542};
10543
10544static const struct snd_kcontrol_new mmul8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010545 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10546 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010547 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10548 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010549 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10550 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010551 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10552 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010553 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10554 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010555 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10556 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010557 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10558 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010559 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10560 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010561 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10562 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010563 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10564 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010565 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10566 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010567 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10568 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010569 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10570 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010571 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10572 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010573 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10574 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010575 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10576 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010577 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10578 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010579 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10580 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010581 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10582 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010583 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10584 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010585 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10586 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010587 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10588 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010589 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10590 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010591 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10592 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010593 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10594 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010595 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10596 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010597 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10598 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010599 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10600 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010601 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10602 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010603 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10604 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010605 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10606 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010607 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10608 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010609 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10610 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010611 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10612 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010613 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10614 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010615 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10616 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010617 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10618 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010619 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10620 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010621 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10622 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010623 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10624 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010625 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10626 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010627 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10628 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010629 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10630 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010631 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10632 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010633 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10634 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010635 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10636 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010637 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10638 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010639 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10640 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010641 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10642 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010643 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10644 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010645 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10646 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010647 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10648 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010649 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10650 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010651 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10652 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010653 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10654 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010655 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10656 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010657 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10658 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010659 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10660 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010661 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
10662 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053010663 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10664 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010665 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
10666 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053010667 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10668 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010669 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
10670 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053010671 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10672 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010673 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
10674 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053010675 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10676 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010677 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10678 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010679 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10680 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010681 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10682 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010683 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10684 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010685 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10686 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10687 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10688 msm_routing_put_audio_mixer),
10689 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10690 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10691 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10692 msm_routing_put_audio_mixer),
10693 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10694 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10695 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10696 msm_routing_put_audio_mixer),
10697 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10698 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10699 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10700 msm_routing_put_audio_mixer),
10701 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10702 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10703 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10704 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010705 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10706 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10707 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10708 msm_routing_put_audio_mixer),
10709 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10710 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10711 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10712 msm_routing_put_audio_mixer),
10713 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10714 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10715 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10716 msm_routing_put_audio_mixer),
10717 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10718 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10719 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10720 msm_routing_put_audio_mixer),
10721 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10722 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10723 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10724 msm_routing_put_audio_mixer),
10725 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10726 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10727 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10728 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010729 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10730 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10731 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10732 msm_routing_put_audio_mixer),
10733 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10734 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10735 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10736 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010737 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10738 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10739 MSM_FRONTEND_DAI_MULTIMEDIA8, 1, 0, msm_routing_get_audio_mixer,
10740 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010741};
10742
Asish Bhattacharya34504582017-08-08 12:55:01 +053010743static const struct snd_kcontrol_new mmul16_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010744 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10745 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010746 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10747 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010748 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10749 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010750 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10751 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010752 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
10753 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010754 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10755 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010756 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
10757 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010758 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10759 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010760 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
10761 MSM_BACKEND_DAI_INT2_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010762 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10763 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010764 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
10765 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010766 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10767 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010768 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
10769 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010770 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10771 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010772 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10773 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010774 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10775 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010776 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10777 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010778 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10779 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010780 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10781 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010782 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10783 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010784 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10785 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010786 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10787 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010788 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10789 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010790 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10791 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010792 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10793 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010794 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10795 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010796 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
10797 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010798 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10799 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010800 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
10801 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010802 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10803 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010804 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
10805 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010806 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10807 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010808 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
10809 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010810 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10811 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010812 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
10813 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010814 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10815 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010816 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
10817 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010818 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10819 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010820 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
10821 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010822 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10823 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010824 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
10825 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010826 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10827 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010828 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10829 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010830 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10831 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010832 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10833 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010834 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10835 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010836 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10837 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010838 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10839 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010840 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10841 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010842 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10843 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010844 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10845 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010846 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10847 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010848 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
10849 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010850 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10851 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010852 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
10853 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010854 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10855 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010856 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
10857 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010858 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10859 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010860 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
10861 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010862 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10863 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010864 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
10865 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010866 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10867 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010868 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
10869 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010870 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10871 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010872 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
10873 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010874 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10875 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010876 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
10877 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010878 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10879 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010880 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
10881 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya34504582017-08-08 12:55:01 +053010882 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10883 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053010884 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
10885 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
10886 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10887 msm_routing_put_audio_mixer),
10888 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
10889 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
10890 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10891 msm_routing_put_audio_mixer),
10892 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
10893 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
10894 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10895 msm_routing_put_audio_mixer),
10896 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
10897 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
10898 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10899 msm_routing_put_audio_mixer),
10900 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
10901 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
10902 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10903 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053010904 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
10905 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
10906 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10907 msm_routing_get_audio_mixer,
10908 msm_routing_put_audio_mixer),
10909 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
10910 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
10911 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10912 msm_routing_get_audio_mixer,
10913 msm_routing_put_audio_mixer),
10914 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
10915 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
10916 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10917 msm_routing_get_audio_mixer,
10918 msm_routing_put_audio_mixer),
10919 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
10920 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
10921 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10922 msm_routing_get_audio_mixer,
10923 msm_routing_put_audio_mixer),
10924 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
10925 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
10926 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10927 msm_routing_get_audio_mixer,
10928 msm_routing_put_audio_mixer),
10929 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
10930 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
10931 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0,
10932 msm_routing_get_audio_mixer,
10933 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020010934 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
10935 MSM_BACKEND_DAI_PRI_SPDIF_TX,
10936 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10937 msm_routing_put_audio_mixer),
10938 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
10939 MSM_BACKEND_DAI_SEC_SPDIF_TX,
10940 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10941 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053010942 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
10943 MSM_BACKEND_DAI_SLIMBUS_9_TX,
10944 MSM_FRONTEND_DAI_MULTIMEDIA16, 1, 0, msm_routing_get_audio_mixer,
10945 msm_routing_put_audio_mixer),
Asish Bhattacharya34504582017-08-08 12:55:01 +053010946};
10947
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010948static const struct snd_kcontrol_new mmul9_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080010949 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
10950 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010951 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10952 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010953 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
10954 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010955 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10956 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010957 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
10958 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010959 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10960 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010961 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
10962 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010963 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10964 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010965 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
10966 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010967 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10968 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010969 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
10970 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010971 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10972 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010973 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
10974 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010975 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10976 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010977 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
10978 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010979 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10980 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010981 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
10982 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010983 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10984 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010985 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
10986 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010987 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10988 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010989 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
10990 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010991 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10992 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010993 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
10994 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010995 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
10996 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080010997 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
10998 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053010999 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11000 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011001 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11002 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011003 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11004 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011005 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11006 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011007 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011009 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11010 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011011 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011013 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11014 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011015 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011017 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11018 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011019 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011021 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11022 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011023 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011025 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11026 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011027 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11028 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011029 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11030 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11031 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11032 msm_routing_put_audio_mixer),
11033 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11034 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11035 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11036 msm_routing_put_audio_mixer),
11037 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11038 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11039 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11040 msm_routing_put_audio_mixer),
11041 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11042 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11043 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11044 msm_routing_put_audio_mixer),
11045 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11046 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11047 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11048 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011049 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11050 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11051 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11052 msm_routing_put_audio_mixer),
11053 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11054 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11055 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11056 msm_routing_put_audio_mixer),
11057 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11058 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11059 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11060 msm_routing_put_audio_mixer),
11061 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11062 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11063 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11064 msm_routing_put_audio_mixer),
11065 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11066 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11067 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11068 msm_routing_put_audio_mixer),
11069 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11070 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11071 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11072 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011073 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11074 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11075 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11076 msm_routing_put_audio_mixer),
11077 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11078 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11079 MSM_FRONTEND_DAI_MULTIMEDIA9, 1, 0, msm_routing_get_audio_mixer,
11080 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011081};
11082
Laxminath Kasam38070be2017-08-17 18:21:59 +053011083static const struct snd_kcontrol_new mmul10_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011084 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11085 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011086 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11087 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011088 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11089 MSM_BACKEND_DAI_PRI_MI2S_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011090 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11091 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011092 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11093 MSM_BACKEND_DAI_INT_FM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011094 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11095 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011096 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11097 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011098 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11099 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011100 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11101 MSM_BACKEND_DAI_AFE_PCM_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011102 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11103 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011104 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11105 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011106 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11107 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011108 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11109 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011110 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11111 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011112 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11113 MSM_BACKEND_DAI_SLIMBUS_6_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011114 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11115 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011116 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11117 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Vikram Panduranga72863152017-09-06 15:47:35 -070011118 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11119 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011120 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11121 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011122 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11123 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011124 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11125 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011126 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11127 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011128 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11129 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011130 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11131 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011132 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11133 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011134 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11135 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011136 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11137 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011138 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11139 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011140 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11141 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011142 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11143 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011144 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11145 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011146 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11147 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011148 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11149 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011150 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11151 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011152 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
11153 MSM_BACKEND_DAI_USB_TX,
Laxminath Kasam38070be2017-08-17 18:21:59 +053011154 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11155 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011156 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
11157 MSM_BACKEND_DAI_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011158 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11159 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011160 SOC_DOUBLE_EXT("AUX_PCM_TX", SND_SOC_NOPM,
11161 MSM_BACKEND_DAI_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011162 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11163 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011164 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX", SND_SOC_NOPM,
11165 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011166 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11167 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011168 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX", SND_SOC_NOPM,
11169 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011170 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11171 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011172 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX", SND_SOC_NOPM,
11173 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011174 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11175 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011176 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11177 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011178 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11179 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011180 SOC_DOUBLE_EXT("INT2_MI2S_TX", SND_SOC_NOPM,
11181 MSM_BACKEND_DAI_INT2_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011182 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11183 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011184 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11185 MSM_BACKEND_DAI_INT3_MI2S_TX,
Vikram Panduranga016c49f2017-09-11 15:15:56 -070011186 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11187 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011188 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11189 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11190 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11191 msm_routing_put_audio_mixer),
11192 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11193 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11194 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11195 msm_routing_put_audio_mixer),
11196 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11197 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11198 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11199 msm_routing_put_audio_mixer),
11200 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11201 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11202 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11203 msm_routing_put_audio_mixer),
11204 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11205 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11206 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11207 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011208 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11209 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11210 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11211 msm_routing_get_audio_mixer,
11212 msm_routing_put_audio_mixer),
11213 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11214 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11215 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11216 msm_routing_get_audio_mixer,
11217 msm_routing_put_audio_mixer),
11218 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11219 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11220 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11221 msm_routing_get_audio_mixer,
11222 msm_routing_put_audio_mixer),
11223 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11224 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11225 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11226 msm_routing_get_audio_mixer,
11227 msm_routing_put_audio_mixer),
11228 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11229 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11230 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11231 msm_routing_get_audio_mixer,
11232 msm_routing_put_audio_mixer),
11233 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11234 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11235 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0,
11236 msm_routing_get_audio_mixer,
11237 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011238 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11239 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11240 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11241 msm_routing_put_audio_mixer),
11242 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11243 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11244 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11245 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011246 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11247 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11248 MSM_FRONTEND_DAI_MULTIMEDIA10, 1, 0, msm_routing_get_audio_mixer,
11249 msm_routing_put_audio_mixer),
Laxminath Kasam38070be2017-08-17 18:21:59 +053011250};
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011251static const struct snd_kcontrol_new mmul17_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011252 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11253 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011254 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11255 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011256 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11257 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011258 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11259 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011260 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11261 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011262 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11263 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011264 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11265 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011266 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11267 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011268 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11269 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011270 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11271 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011272 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11273 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011274 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11275 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011276 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11277 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011278 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11279 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011280 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11281 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011282 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11283 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011284 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11285 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11286 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11287 msm_routing_put_audio_mixer),
11288 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11289 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11290 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11291 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011292 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11293 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11294 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11295 msm_routing_put_audio_mixer),
11296 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11297 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11298 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11299 msm_routing_put_audio_mixer),
11300 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11301 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11302 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11303 msm_routing_put_audio_mixer),
11304 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11305 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11306 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11307 msm_routing_put_audio_mixer),
11308 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11309 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11310 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11311 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011312 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11313 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11314 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11315 msm_routing_get_audio_mixer,
11316 msm_routing_put_audio_mixer),
11317 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11318 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11319 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11320 msm_routing_get_audio_mixer,
11321 msm_routing_put_audio_mixer),
11322 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11323 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11324 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11325 msm_routing_get_audio_mixer,
11326 msm_routing_put_audio_mixer),
11327 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11328 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11329 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11330 msm_routing_get_audio_mixer,
11331 msm_routing_put_audio_mixer),
11332 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11333 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11334 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11335 msm_routing_get_audio_mixer,
11336 msm_routing_put_audio_mixer),
11337 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11338 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11339 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0,
11340 msm_routing_get_audio_mixer,
11341 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011342 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11343 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11344 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11345 msm_routing_put_audio_mixer),
11346 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11347 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11348 MSM_FRONTEND_DAI_MULTIMEDIA17, 1, 0, msm_routing_get_audio_mixer,
11349 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011350};
11351
11352static const struct snd_kcontrol_new mmul18_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011353 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11354 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011355 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11356 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011357 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11358 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011359 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11360 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011361 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11362 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011363 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11364 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011365 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11366 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11367 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11368 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011369 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11370 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11371 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11372 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011373 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11374 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011375 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11376 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011377 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11378 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011379 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11380 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011381 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11382 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011383 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11384 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011385 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11386 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011387 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11388 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011389 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11390 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011391 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11392 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011393 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11394 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011395 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11396 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011397 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11398 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11399 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11400 msm_routing_put_audio_mixer),
11401 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11402 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11403 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11404 msm_routing_put_audio_mixer),
11405 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11406 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11407 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11408 msm_routing_put_audio_mixer),
11409 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11410 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11411 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11412 msm_routing_put_audio_mixer),
11413 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11414 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11415 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11416 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011417 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11418 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11419 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11420 msm_routing_get_audio_mixer,
11421 msm_routing_put_audio_mixer),
11422 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11423 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11424 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11425 msm_routing_get_audio_mixer,
11426 msm_routing_put_audio_mixer),
11427 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11428 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11429 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11430 msm_routing_get_audio_mixer,
11431 msm_routing_put_audio_mixer),
11432 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11433 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11434 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11435 msm_routing_get_audio_mixer,
11436 msm_routing_put_audio_mixer),
11437 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11438 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11439 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11440 msm_routing_get_audio_mixer,
11441 msm_routing_put_audio_mixer),
11442 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11443 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11444 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0,
11445 msm_routing_get_audio_mixer,
11446 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011447 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11448 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11449 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11450 msm_routing_put_audio_mixer),
11451 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11452 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11453 MSM_FRONTEND_DAI_MULTIMEDIA18, 1, 0, msm_routing_get_audio_mixer,
11454 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011455};
11456
11457static const struct snd_kcontrol_new mmul19_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011458 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11459 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011460 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11461 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011462 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11463 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011464 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11465 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011466 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11467 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011468 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11469 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011470 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11471 MSM_BACKEND_DAI_INT_FM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011472 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11473 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011474 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11475 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011476 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11477 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011478 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11479 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011480 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11481 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011482 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11483 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011484 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11485 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011486 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11487 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011488 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11489 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011490 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11491 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11492 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11493 msm_routing_put_audio_mixer),
11494 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11495 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11496 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11497 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011498 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11499 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11500 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11501 msm_routing_put_audio_mixer),
11502 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11503 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11504 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11505 msm_routing_put_audio_mixer),
11506 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11507 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11508 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11509 msm_routing_put_audio_mixer),
11510 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11511 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11512 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11513 msm_routing_put_audio_mixer),
11514 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11515 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11516 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11517 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011518 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11519 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11520 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11521 msm_routing_get_audio_mixer,
11522 msm_routing_put_audio_mixer),
11523 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11524 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11525 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11526 msm_routing_get_audio_mixer,
11527 msm_routing_put_audio_mixer),
11528 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11529 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11530 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11531 msm_routing_get_audio_mixer,
11532 msm_routing_put_audio_mixer),
11533 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11534 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11535 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11536 msm_routing_get_audio_mixer,
11537 msm_routing_put_audio_mixer),
11538 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11539 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11540 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11541 msm_routing_get_audio_mixer,
11542 msm_routing_put_audio_mixer),
11543 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11544 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11545 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0,
11546 msm_routing_get_audio_mixer,
11547 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011548 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11549 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11550 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11551 msm_routing_put_audio_mixer),
11552 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11553 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11554 MSM_FRONTEND_DAI_MULTIMEDIA19, 1, 0, msm_routing_get_audio_mixer,
11555 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011556};
11557
11558static const struct snd_kcontrol_new mmul20_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011559 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11560 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011561 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11562 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011563 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11564 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011565 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11566 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011567 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11568 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011569 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11570 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011571 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11572 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011573 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11574 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011575 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11576 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053011577 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11578 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011579 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11580 MSM_BACKEND_DAI_PRI_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011581 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11582 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011583 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11584 MSM_BACKEND_DAI_PRI_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011585 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11586 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011587 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11588 MSM_BACKEND_DAI_PRI_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011589 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11590 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011591 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11592 MSM_BACKEND_DAI_PRI_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011593 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11594 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011595 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11596 MSM_BACKEND_DAI_SEC_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011597 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11598 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011599 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11600 MSM_BACKEND_DAI_SEC_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011601 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11602 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011603 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11604 MSM_BACKEND_DAI_SEC_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011605 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11606 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011607 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11608 MSM_BACKEND_DAI_SEC_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011609 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11610 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011611 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11612 MSM_BACKEND_DAI_TERT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011613 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11614 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011615 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11616 MSM_BACKEND_DAI_TERT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011617 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11618 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011619 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11620 MSM_BACKEND_DAI_TERT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011621 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11622 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011623 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11624 MSM_BACKEND_DAI_TERT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011625 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11626 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011627 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11628 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011629 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11630 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011631 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11632 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011633 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11634 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011635 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11636 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011637 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11638 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011639 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11640 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011641 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11642 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011643 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11644 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053011645 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11646 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011647 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11648 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053011649 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11650 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011651 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11652 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053011653 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11654 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011655 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11656 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053011657 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11658 msm_routing_put_audio_mixer),
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011659 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11660 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11661 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11662 msm_routing_put_audio_mixer),
11663 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11664 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11665 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11666 msm_routing_put_audio_mixer),
11667 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11668 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11669 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11670 msm_routing_put_audio_mixer),
11671 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11672 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11673 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11674 msm_routing_put_audio_mixer),
11675 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11676 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11677 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11678 msm_routing_put_audio_mixer),
11679 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11680 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11681 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11682 msm_routing_put_audio_mixer),
11683 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11684 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11685 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11686 msm_routing_put_audio_mixer),
11687 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11688 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11689 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11690 msm_routing_put_audio_mixer),
11691 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11692 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11693 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11694 msm_routing_put_audio_mixer),
11695 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11696 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11697 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11698 msm_routing_put_audio_mixer),
11699 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11700 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11701 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11702 msm_routing_put_audio_mixer),
11703 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11704 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11705 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11706 msm_routing_put_audio_mixer),
11707 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11708 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11709 MSM_FRONTEND_DAI_MULTIMEDIA20, 1, 0, msm_routing_get_audio_mixer,
11710 msm_routing_put_audio_mixer),
Derek Chen07c6d1c2018-07-05 10:39:25 -070011711};
11712
11713static const struct snd_kcontrol_new mmul21_mixer_controls[] = {
11714 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
11715 MSM_BACKEND_DAI_AUXPCM_TX,
11716 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11717 msm_routing_put_audio_mixer),
11718 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
11719 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
11720 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11721 msm_routing_put_audio_mixer),
11722 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
11723 MSM_BACKEND_DAI_PRI_TDM_TX_0,
11724 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11725 msm_routing_put_audio_mixer),
11726 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
11727 MSM_BACKEND_DAI_PRI_TDM_TX_1,
11728 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11729 msm_routing_put_audio_mixer),
11730 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
11731 MSM_BACKEND_DAI_PRI_TDM_TX_2,
11732 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11733 msm_routing_put_audio_mixer),
11734 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
11735 MSM_BACKEND_DAI_PRI_TDM_TX_3,
11736 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11737 msm_routing_put_audio_mixer),
11738 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
11739 MSM_BACKEND_DAI_SEC_TDM_TX_0,
11740 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11741 msm_routing_put_audio_mixer),
11742 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
11743 MSM_BACKEND_DAI_SEC_TDM_TX_1,
11744 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11745 msm_routing_put_audio_mixer),
11746 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
11747 MSM_BACKEND_DAI_SEC_TDM_TX_2,
11748 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11749 msm_routing_put_audio_mixer),
11750 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
11751 MSM_BACKEND_DAI_SEC_TDM_TX_3,
11752 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11753 msm_routing_put_audio_mixer),
11754 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
11755 MSM_BACKEND_DAI_TERT_TDM_TX_0,
11756 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11757 msm_routing_put_audio_mixer),
11758 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
11759 MSM_BACKEND_DAI_TERT_TDM_TX_1,
11760 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11761 msm_routing_put_audio_mixer),
11762 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
11763 MSM_BACKEND_DAI_TERT_TDM_TX_2,
11764 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11765 msm_routing_put_audio_mixer),
11766 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
11767 MSM_BACKEND_DAI_TERT_TDM_TX_3,
11768 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11769 msm_routing_put_audio_mixer),
11770 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
11771 MSM_BACKEND_DAI_QUAT_TDM_TX_0,
11772 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11773 msm_routing_put_audio_mixer),
11774 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
11775 MSM_BACKEND_DAI_QUAT_TDM_TX_1,
11776 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11777 msm_routing_put_audio_mixer),
11778 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
11779 MSM_BACKEND_DAI_QUAT_TDM_TX_2,
11780 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11781 msm_routing_put_audio_mixer),
11782 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
11783 MSM_BACKEND_DAI_QUAT_TDM_TX_3,
11784 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11785 msm_routing_put_audio_mixer),
11786 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
11787 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
11788 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11789 msm_routing_put_audio_mixer),
11790 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
11791 MSM_BACKEND_DAI_QUIN_TDM_TX_1,
11792 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11793 msm_routing_put_audio_mixer),
11794 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
11795 MSM_BACKEND_DAI_QUIN_TDM_TX_2,
11796 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11797 msm_routing_put_audio_mixer),
11798 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
11799 MSM_BACKEND_DAI_QUIN_TDM_TX_3,
11800 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11801 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011802 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011803 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11804 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011805 msm_routing_put_audio_mixer),
11806 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011807 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11808 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011809 msm_routing_put_audio_mixer),
11810 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011811 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11812 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011813 msm_routing_put_audio_mixer),
11814 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011815 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11816 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011817 msm_routing_put_audio_mixer),
11818 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011819 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11820 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011821 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011822 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011823 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11824 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11825 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011826 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011827 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11828 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11829 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011830 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011831 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11832 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11833 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011834 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011835 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11836 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11837 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011838 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011839 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11840 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11841 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011842 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011843 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11844 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
11845 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011846 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11847 MSM_BACKEND_DAI_PRI_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011848 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011849 msm_routing_put_audio_mixer),
11850 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11851 MSM_BACKEND_DAI_SEC_SPDIF_TX,
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053011852 MSM_FRONTEND_DAI_MULTIMEDIA21, 1, 0, msm_routing_get_audio_mixer,
Ralf Herzc8701f72018-06-20 11:37:35 +020011853 msm_routing_put_audio_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053011854};
11855
Surendar Karkac1cde372018-08-14 18:56:24 +053011856static const struct snd_kcontrol_new mmul27_mixer_controls[] = {
11857 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11858 MSM_BACKEND_DAI_SLIMBUS_0_TX,
11859 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11860 msm_routing_put_audio_mixer),
11861 SOC_DOUBLE_EXT("SLIM_6_TX", SND_SOC_NOPM,
11862 MSM_BACKEND_DAI_SLIMBUS_6_TX,
11863 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11864 msm_routing_put_audio_mixer),
11865 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
11866 MSM_BACKEND_DAI_SLIMBUS_7_TX,
11867 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11868 msm_routing_put_audio_mixer),
11869 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11870 MSM_BACKEND_DAI_PRI_MI2S_TX,
11871 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11872 msm_routing_put_audio_mixer),
11873 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
11874 MSM_BACKEND_DAI_SECONDARY_MI2S_TX,
11875 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11876 msm_routing_put_audio_mixer),
11877 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11878 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11879 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11880 msm_routing_put_audio_mixer),
11881 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11882 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11883 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11884 msm_routing_put_audio_mixer),
11885 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
11886 MSM_BACKEND_DAI_QUINARY_MI2S_TX,
11887 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11888 msm_routing_put_audio_mixer),
11889 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11890 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11891 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11892 msm_routing_put_audio_mixer),
11893 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11894 MSM_BACKEND_DAI_SEC_SPDIF_TX,
11895 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11896 msm_routing_put_audio_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053011897 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
11898 MSM_BACKEND_DAI_SLIMBUS_9_TX,
11899 MSM_FRONTEND_DAI_MULTIMEDIA27, 1, 0, msm_routing_get_audio_mixer,
11900 msm_routing_put_audio_mixer),
Surendar Karkac1cde372018-08-14 18:56:24 +053011901};
11902
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011903static const struct snd_kcontrol_new mmul28_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080011904 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
11905 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011906 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11907 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011908 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
11909 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011910 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11911 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011912 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
11913 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011914 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11915 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011916 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
11917 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011918 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11919 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011920 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
11921 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011922 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11923 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011924 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
11925 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011926 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11927 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011928 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
11929 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011930 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11931 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080011932 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
11933 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053011934 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11935 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080011936 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
11937 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
11938 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11939 msm_routing_put_audio_mixer),
11940 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
11941 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
11942 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
11943 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053011944 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
11945 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
11946 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11947 msm_routing_put_audio_mixer),
11948 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
11949 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
11950 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11951 msm_routing_put_audio_mixer),
11952 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
11953 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
11954 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11955 msm_routing_put_audio_mixer),
11956 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
11957 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
11958 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11959 msm_routing_put_audio_mixer),
11960 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
11961 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
11962 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11963 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053011964 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
11965 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
11966 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11967 msm_routing_get_audio_mixer,
11968 msm_routing_put_audio_mixer),
11969 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
11970 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
11971 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11972 msm_routing_get_audio_mixer,
11973 msm_routing_put_audio_mixer),
11974 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
11975 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
11976 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11977 msm_routing_get_audio_mixer,
11978 msm_routing_put_audio_mixer),
11979 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
11980 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
11981 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11982 msm_routing_get_audio_mixer,
11983 msm_routing_put_audio_mixer),
11984 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
11985 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
11986 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11987 msm_routing_get_audio_mixer,
11988 msm_routing_put_audio_mixer),
11989 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
11990 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
11991 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0,
11992 msm_routing_get_audio_mixer,
11993 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020011994 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
11995 MSM_BACKEND_DAI_PRI_SPDIF_TX,
11996 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
11997 msm_routing_put_audio_mixer),
11998 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
11999 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12000 MSM_FRONTEND_DAI_MULTIMEDIA28, 1, 0, msm_routing_get_audio_mixer,
12001 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012002};
12003
12004static const struct snd_kcontrol_new mmul29_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012005 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
12006 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012007 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12008 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012009 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
12010 MSM_BACKEND_DAI_PRI_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012011 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12012 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012013 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
12014 MSM_BACKEND_DAI_INT3_MI2S_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012015 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12016 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012017 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
12018 MSM_BACKEND_DAI_INT_FM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012019 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12020 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012021 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
12022 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012023 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12024 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012025 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
12026 MSM_BACKEND_DAI_AFE_PCM_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012027 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12028 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012029 SOC_DOUBLE_EXT("VOC_REC_DL", SND_SOC_NOPM,
12030 MSM_BACKEND_DAI_INCALL_RECORD_RX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012031 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12032 msm_routing_put_audio_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012033 SOC_DOUBLE_EXT("VOC_REC_UL", SND_SOC_NOPM,
12034 MSM_BACKEND_DAI_INCALL_RECORD_TX,
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012035 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12036 msm_routing_put_audio_mixer),
Meng Wang5c4bab72018-04-25 10:40:01 +080012037 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
12038 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
12039 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12040 msm_routing_put_audio_mixer),
12041 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
12042 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
12043 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12044 msm_routing_put_audio_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012045 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_0", SND_SOC_NOPM,
12046 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0,
12047 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12048 msm_routing_put_audio_mixer),
12049 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_1", SND_SOC_NOPM,
12050 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_1,
12051 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12052 msm_routing_put_audio_mixer),
12053 SOC_DOUBLE_EXT("WSA_CDC_DMA_TX_2", SND_SOC_NOPM,
12054 MSM_BACKEND_DAI_WSA_CDC_DMA_TX_2,
12055 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12056 msm_routing_put_audio_mixer),
12057 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
12058 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
12059 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12060 msm_routing_put_audio_mixer),
12061 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
12062 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
12063 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12064 msm_routing_put_audio_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012065 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
12066 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0,
12067 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12068 msm_routing_get_audio_mixer,
12069 msm_routing_put_audio_mixer),
12070 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
12071 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1,
12072 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12073 msm_routing_get_audio_mixer,
12074 msm_routing_put_audio_mixer),
12075 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
12076 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2,
12077 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12078 msm_routing_get_audio_mixer,
12079 msm_routing_put_audio_mixer),
12080 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
12081 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
12082 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12083 msm_routing_get_audio_mixer,
12084 msm_routing_put_audio_mixer),
12085 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
12086 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4,
12087 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12088 msm_routing_get_audio_mixer,
12089 msm_routing_put_audio_mixer),
12090 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
12091 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5,
12092 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0,
12093 msm_routing_get_audio_mixer,
12094 msm_routing_put_audio_mixer),
Ralf Herzc8701f72018-06-20 11:37:35 +020012095 SOC_DOUBLE_EXT("PRI_SPDIF_TX", SND_SOC_NOPM,
12096 MSM_BACKEND_DAI_PRI_SPDIF_TX,
12097 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12098 msm_routing_put_audio_mixer),
12099 SOC_DOUBLE_EXT("SEC_SPDIF_TX", SND_SOC_NOPM,
12100 MSM_BACKEND_DAI_SEC_SPDIF_TX,
12101 MSM_FRONTEND_DAI_MULTIMEDIA29, 1, 0, msm_routing_get_audio_mixer,
12102 msm_routing_put_audio_mixer),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053012103};
12104
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012105static const struct snd_kcontrol_new pri_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012106 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12107 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012108 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12109 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012110 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12111 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012112 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12113 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012114 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12115 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012116 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12117 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012118 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12119 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012120 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12121 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012122 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12123 MSM_BACKEND_DAI_PRI_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012124 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12125 msm_routing_put_voice_mixer),
12126};
12127
12128static const struct snd_kcontrol_new sec_i2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012129 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12130 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012131 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12132 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012133 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12134 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012135 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12136 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012137 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12138 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012139 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12140 msm_routing_put_voice_mixer),
12141};
12142
12143static const struct snd_kcontrol_new sec_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012144 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12145 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012146 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12147 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012148 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12149 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012150 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12151 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012152 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12153 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012154 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12155 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012156 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12157 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012158 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12159 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012160 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12161 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012162 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12163 msm_routing_put_voice_mixer),
12164};
12165
12166static const struct snd_kcontrol_new slimbus_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012167 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12168 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012169 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12170 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012171 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12172 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012173 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12174 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012175 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12176 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012177 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12178 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012179 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12180 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012181 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12182 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012183 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12184 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012185 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12186 msm_routing_put_voice_mixer),
12187};
12188
12189static const struct snd_kcontrol_new slimbus_6_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012190 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12191MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012192 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12193 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012194 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12195MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012196 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12197 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012198 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12199MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012200 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12201 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012202 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12203MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012204 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12205 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012206 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12207MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012208 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12209 msm_routing_put_voice_mixer),
12210};
12211
12212static const struct snd_kcontrol_new usb_audio_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012213 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12214 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012215 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12216 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012217 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12218 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012219 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12220 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012221 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12222 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012223 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12224 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012225 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12226 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012227 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12228 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012229 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12230 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012231 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12232 msm_routing_put_voice_mixer),
12233};
12234
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012235static const struct snd_kcontrol_new display_port_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012236 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12237MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012238 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12239 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012240 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12241MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012242 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12243 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012244 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12245MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012246 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12247 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012248 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12249MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012250 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12251 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012252 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12253MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080012254 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12255 msm_routing_put_voice_mixer),
12256};
12257
Karthikeyan Mani57550082018-05-03 18:43:58 -070012258static const struct snd_kcontrol_new display_port_rx1_voice_mixer_controls[] = {
12259 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12260 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12261 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12262 msm_routing_put_voice_mixer),
12263 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12264 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12265 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12266 msm_routing_put_voice_mixer),
12267 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12268 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12269 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12270 msm_routing_put_voice_mixer),
12271 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12272 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12273 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12274 msm_routing_put_voice_mixer),
12275 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12276 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
12277 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12278 msm_routing_put_voice_mixer),
12279};
12280
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012281static const struct snd_kcontrol_new bt_sco_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012282 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12283 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012284 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12285 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012286 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12287 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012288 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12289 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012290 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12291 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012292 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12293 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012294 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12295 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012296 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12297 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012298 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12299 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012300 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12301 msm_routing_put_voice_mixer),
12302};
12303
12304static const struct snd_kcontrol_new mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012305 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12306 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012307 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12308 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012309 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12310 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012311 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12312 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012313 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12314 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012315 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12316 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012317 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12318 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012319 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12320 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012321 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12322 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012323 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12324 msm_routing_put_voice_mixer),
12325};
12326
12327static const struct snd_kcontrol_new pri_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012328 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12329MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012330 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12331 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012332 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12333MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012334 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12335 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012336 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12337MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012338 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12339 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012340 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12341MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012342 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12343 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012344 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12345MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012346 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12347 msm_routing_put_voice_mixer),
12348};
12349
12350static const struct snd_kcontrol_new int0_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012351 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12352MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012353 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12354 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012355 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12356MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012357 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12358 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012359 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12360MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012361 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12362 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012363 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12364MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012365 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12366 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012367 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12368MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012369 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12370 msm_routing_put_voice_mixer),
12371};
12372
12373static const struct snd_kcontrol_new int4_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012374 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12375 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012376 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12377 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012378 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12379 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012380 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12381 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012382 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12383 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012384 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12385 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012386 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12387 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012388 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12389 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012390 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12391 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012392 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12393 msm_routing_put_voice_mixer),
12394};
12395
12396static const struct snd_kcontrol_new tert_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012397 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12398 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012399 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12400 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012401 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12402 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012403 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12404 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012405 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12406 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012407 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12408 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012409 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12410 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012411 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12412 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012413 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12414 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012415 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12416 msm_routing_put_voice_mixer),
12417};
12418
12419static const struct snd_kcontrol_new quat_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012420 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12421 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012422 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12423 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012424 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12425 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012426 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12427 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012428 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12429 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012430 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12431 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012432 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12433 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012434 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12435 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012436 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12437 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012438 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12439 msm_routing_put_voice_mixer),
12440};
12441
12442static const struct snd_kcontrol_new quin_mi2s_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012443 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12444 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012445 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12446 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012447 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12448 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012449 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12450 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012451 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12452 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012453 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12454 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012455 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12456 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012457 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12458 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012459 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12460 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012461 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12462 msm_routing_put_voice_mixer),
12463};
12464
12465static const struct snd_kcontrol_new afe_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012466 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12467 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012468 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12469 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012470 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12471 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012472 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12473 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012474 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12475 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012476 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12477 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012478 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12479 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012480 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12481 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012482 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12483 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012484 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12485 msm_routing_put_voice_mixer),
12486};
12487
12488static const struct snd_kcontrol_new aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012489 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12490 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012491 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12492 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012493 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12494 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012495 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12496 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012497 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12498 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012499 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12500 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012501 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12502 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012503 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12504 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012505 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12506 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012507 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12508 msm_routing_put_voice_mixer),
12509};
12510
12511static const struct snd_kcontrol_new sec_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012512 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12513MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012514 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12515 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012516 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12517MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012518 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12519 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012520 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12521MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012522 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12523 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012524 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12525MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012526 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12527 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012528 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12529MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012530 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12531 msm_routing_put_voice_mixer),
12532};
12533
12534static const struct snd_kcontrol_new tert_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012535 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12536MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012537 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12538 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012539 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12540MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012541 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12542 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012543 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12544MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012545 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12546 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012547 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12548MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012549 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12550 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012551 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12552MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012553 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12554 msm_routing_put_voice_mixer),
12555};
12556
12557static const struct snd_kcontrol_new quat_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012558 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12559MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012560 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12561 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012562 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12563MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012564 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12565 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012566 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12567MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012568 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12569 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012570 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12571MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012572 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12573 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012574 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12575MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012576 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12577 msm_routing_put_voice_mixer),
12578};
12579
Rohit Kumara5077932017-09-10 22:05:05 +053012580static const struct snd_kcontrol_new quin_aux_pcm_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012581 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12582MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012583 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12584 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012585 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12586MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012587 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12588 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012589 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12590MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012591 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12592 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012593 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12594MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012595 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12596 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012597 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12598MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053012599 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12600 msm_routing_put_voice_mixer),
12601};
12602
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012603static const struct snd_kcontrol_new hdmi_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012604 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12605 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012606 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12607 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012608 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12609 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012610 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12611 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012612 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12613 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012614 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12615 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012616 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12617 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012618 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12619 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012620 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12621 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012622 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12623 msm_routing_put_voice_mixer),
12624};
12625
12626static const struct snd_kcontrol_new slimbus_7_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012627 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12628MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012629 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12630 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012631 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12632MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012633 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12634 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012635 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12636MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012637 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12638 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012639 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12640MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012641 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12642 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012643 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12644MSM_BACKEND_DAI_SLIMBUS_7_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012645 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12646 msm_routing_put_voice_mixer),
12647};
12648
12649static const struct snd_kcontrol_new slimbus_8_rx_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012650 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12651 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012652 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12653 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012654 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12655 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012656 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12657 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012658 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12659 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012660 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12661 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012662 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12663 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012664 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12665 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012666 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12667 MSM_BACKEND_DAI_SLIMBUS_8_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012668 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12669 msm_routing_put_voice_mixer),
12670};
12671
12672static const struct snd_kcontrol_new quat_tdm_rx_2_voice_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012673 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12674 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012675 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12676 msm_routing_put_voice_mixer),
12677};
12678
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012679static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_voice_mixer_controls[] = {
12680 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12681 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12682 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12683 msm_routing_put_voice_mixer),
12684 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12685 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12686 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12687 msm_routing_put_voice_mixer),
12688 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12689 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12690 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12691 msm_routing_put_voice_mixer),
12692 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12693 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12694 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12695 msm_routing_put_voice_mixer),
12696 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12697 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
12698 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12699 msm_routing_put_voice_mixer),
12700};
12701
12702static const struct snd_kcontrol_new wsa_cdc_dma_rx_1_voice_mixer_controls[] = {
12703 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12704 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12705 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12706 msm_routing_put_voice_mixer),
12707 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12708 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12709 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12710 msm_routing_put_voice_mixer),
12711 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12712 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12713 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12714 msm_routing_put_voice_mixer),
12715 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12716 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12717 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12718 msm_routing_put_voice_mixer),
12719 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12720 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_1,
12721 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12722 msm_routing_put_voice_mixer),
12723};
12724
Aditya Bavanari1e84a932018-06-18 19:40:08 +053012725static const struct snd_kcontrol_new rx_cdc_dma_rx_0_voice_mixer_controls[] = {
12726 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12727 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12728 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12729 msm_routing_put_voice_mixer),
12730 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12731 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12732 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12733 msm_routing_put_voice_mixer),
12734 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12735 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12736 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12737 msm_routing_put_voice_mixer),
12738 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12739 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12740 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12741 msm_routing_put_voice_mixer),
12742 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12743 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
12744 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12745 msm_routing_put_voice_mixer),
12746};
12747
12748static const struct snd_kcontrol_new rx_cdc_dma_rx_1_voice_mixer_controls[] = {
12749 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12750 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12751 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12752 msm_routing_put_voice_mixer),
12753 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12754 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12755 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12756 msm_routing_put_voice_mixer),
12757 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12758 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12759 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12760 msm_routing_put_voice_mixer),
12761 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12762 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12763 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12764 msm_routing_put_voice_mixer),
12765 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12766 MSM_BACKEND_DAI_RX_CDC_DMA_RX_1,
12767 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12768 msm_routing_put_voice_mixer),
12769};
12770
12771static const struct snd_kcontrol_new rx_cdc_dma_rx_2_voice_mixer_controls[] = {
12772 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12773 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12774 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12775 msm_routing_put_voice_mixer),
12776 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12777 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12778 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12779 msm_routing_put_voice_mixer),
12780 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12781 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12782 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12783 msm_routing_put_voice_mixer),
12784 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12785 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12786 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12787 msm_routing_put_voice_mixer),
12788 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12789 MSM_BACKEND_DAI_RX_CDC_DMA_RX_2,
12790 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12791 msm_routing_put_voice_mixer),
12792};
12793
12794static const struct snd_kcontrol_new rx_cdc_dma_rx_3_voice_mixer_controls[] = {
12795 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12796 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12797 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12798 msm_routing_put_voice_mixer),
12799 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12800 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12801 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12802 msm_routing_put_voice_mixer),
12803 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12804 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12805 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12806 msm_routing_put_voice_mixer),
12807 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12808 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12809 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12810 msm_routing_put_voice_mixer),
12811 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12812 MSM_BACKEND_DAI_RX_CDC_DMA_RX_3,
12813 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12814 msm_routing_put_voice_mixer),
12815};
12816
12817static const struct snd_kcontrol_new rx_cdc_dma_rx_4_voice_mixer_controls[] = {
12818 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12819 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12820 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12821 msm_routing_put_voice_mixer),
12822 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12823 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12824 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12825 msm_routing_put_voice_mixer),
12826 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12827 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12828 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12829 msm_routing_put_voice_mixer),
12830 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12831 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12832 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12833 msm_routing_put_voice_mixer),
12834 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12835 MSM_BACKEND_DAI_RX_CDC_DMA_RX_4,
12836 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12837 msm_routing_put_voice_mixer),
12838};
12839
12840static const struct snd_kcontrol_new rx_cdc_dma_rx_5_voice_mixer_controls[] = {
12841 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12842 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12843 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12844 msm_routing_put_voice_mixer),
12845 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12846 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12847 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12848 msm_routing_put_voice_mixer),
12849 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12850 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12851 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12852 msm_routing_put_voice_mixer),
12853 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12854 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12855 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12856 msm_routing_put_voice_mixer),
12857 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12858 MSM_BACKEND_DAI_RX_CDC_DMA_RX_5,
12859 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12860 msm_routing_put_voice_mixer),
12861};
12862
12863static const struct snd_kcontrol_new rx_cdc_dma_rx_6_voice_mixer_controls[] = {
12864 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12865 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12866 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12867 msm_routing_put_voice_mixer),
12868 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12869 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12870 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12871 msm_routing_put_voice_mixer),
12872 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12873 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12874 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12875 msm_routing_put_voice_mixer),
12876 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12877 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12878 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12879 msm_routing_put_voice_mixer),
12880 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12881 MSM_BACKEND_DAI_RX_CDC_DMA_RX_6,
12882 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12883 msm_routing_put_voice_mixer),
12884};
12885
12886static const struct snd_kcontrol_new rx_cdc_dma_rx_7_voice_mixer_controls[] = {
12887 SOC_DOUBLE_EXT("Voip", SND_SOC_NOPM,
12888 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12889 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
12890 msm_routing_put_voice_mixer),
12891 SOC_DOUBLE_EXT("DTMF", SND_SOC_NOPM,
12892 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12893 MSM_FRONTEND_DAI_DTMF_RX, 1, 0, msm_routing_get_voice_mixer,
12894 msm_routing_put_voice_mixer),
12895 SOC_DOUBLE_EXT("QCHAT", SND_SOC_NOPM,
12896 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12897 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
12898 msm_routing_put_voice_mixer),
12899 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12900 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12901 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12902 msm_routing_put_voice_mixer),
12903 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12904 MSM_BACKEND_DAI_RX_CDC_DMA_RX_7,
12905 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12906 msm_routing_put_voice_mixer),
12907};
12908
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012909static const struct snd_kcontrol_new stub_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012910 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12911 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012912 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12913 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012914 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12915 MSM_BACKEND_DAI_EXTPROC_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012916 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12917 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012918};
12919
12920static const struct snd_kcontrol_new slimbus_1_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012921 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12922 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012923 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12924 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012925 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12926 MSM_BACKEND_DAI_SLIMBUS_1_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012927 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12928 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012929};
12930
12931static const struct snd_kcontrol_new slimbus_3_rx_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012932 SOC_DOUBLE_EXT("VoiceMMode1", SND_SOC_NOPM,
12933 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012934 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12935 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012936 SOC_DOUBLE_EXT("VoiceMMode2", SND_SOC_NOPM,
12937 MSM_BACKEND_DAI_SLIMBUS_3_RX,
kunleizdf5a00a2017-11-27 15:27:36 +080012938 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
12939 msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012940};
12941
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012942static const struct snd_kcontrol_new tx_voicemmode1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080012943 SOC_DOUBLE_EXT("PRI_TX_MMode1", SND_SOC_NOPM,
12944 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012945 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12946 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012947 SOC_DOUBLE_EXT("MI2S_TX_MMode1", SND_SOC_NOPM,
12948 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012949 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12950 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012951 SOC_DOUBLE_EXT("SLIM_0_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012952 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12953 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012954 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012955 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012958 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12959 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012960 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012961 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012964 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12965 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012966 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012967 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012970 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX_MMode1", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053012973 MSM_BACKEND_DAI_QUIN_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("PRI_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012976 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0,
12977 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012978 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012979 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE1,
12980 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012981 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012982 MSM_BACKEND_DAI_INT3_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("SLIM_7_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012985 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE1, 1,
12986 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012987 SOC_DOUBLE_EXT("SLIM_8_TX_MMode1", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012988 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX_MMode1", SND_SOC_NOPM,
12991 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012992 MSM_FRONTEND_DAI_VOICEMMODE1, 1, 0, msm_routing_get_voice_mixer,
12993 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080012994 SOC_DOUBLE_EXT("QUAT_TDM_TX_0_MMode1", SND_SOC_NOPM,
12995MSM_BACKEND_DAI_QUAT_TDM_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053012996 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053012997 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
12998 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
12999 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13000 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13001 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE1,
13002 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013003 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode1", SND_SOC_NOPM,
13004 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE1,
13005 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13006 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode1", SND_SOC_NOPM,
13007 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2_MMode1", SND_SOC_NOPM,
13010 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3_MMode1", SND_SOC_NOPM,
13013 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4_MMode1", SND_SOC_NOPM,
13016 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5_MMode1", SND_SOC_NOPM,
13019 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE1,
13020 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013021};
13022
13023static const struct snd_kcontrol_new tx_voicemmode2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013024 SOC_DOUBLE_EXT("PRI_TX_MMode2", SND_SOC_NOPM,
13025 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013026 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13027 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013028 SOC_DOUBLE_EXT("MI2S_TX_MMode2", SND_SOC_NOPM,
13029 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013030 MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0, msm_routing_get_voice_mixer,
13031 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013032 SOC_DOUBLE_EXT("SLIM_0_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013033 MSM_BACKEND_DAI_SLIMBUS_0_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13034 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013035 SOC_DOUBLE_EXT("INT_BT_SCO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013036 MSM_BACKEND_DAI_INT_BT_SCO_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("AFE_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013039 MSM_BACKEND_DAI_AFE_PCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13040 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013041 SOC_DOUBLE_EXT("AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013042 MSM_BACKEND_DAI_AUXPCM_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("SEC_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013045 MSM_BACKEND_DAI_SEC_AUXPCM_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13046 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013047 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013048 MSM_BACKEND_DAI_TERT_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("QUAT_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013051 MSM_BACKEND_DAI_QUAT_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("QUIN_AUX_PCM_TX_MMode2", SND_SOC_NOPM,
Rohit Kumara5077932017-09-10 22:05:05 +053013054 MSM_BACKEND_DAI_QUIN_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("PRI_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013057 MSM_BACKEND_DAI_PRI_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1, 0,
13058 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013059 SOC_DOUBLE_EXT("TERT_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013060 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, MSM_FRONTEND_DAI_VOICEMMODE2,
13061 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013062 SOC_DOUBLE_EXT("INT3_MI2S_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013063 MSM_BACKEND_DAI_INT3_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("SLIM_7_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013066 MSM_BACKEND_DAI_SLIMBUS_7_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13067 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013068 SOC_DOUBLE_EXT("SLIM_8_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013069 MSM_BACKEND_DAI_SLIMBUS_8_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("USB_AUDIO_TX_MMode2", SND_SOC_NOPM,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013072 MSM_BACKEND_DAI_USB_TX, MSM_FRONTEND_DAI_VOICEMMODE2, 1,
13073 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013074 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13075 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13076 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13077 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13078 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICEMMODE2,
13079 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013080 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_MMode2", SND_SOC_NOPM,
13081 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICEMMODE2,
13082 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13083 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_MMode2", SND_SOC_NOPM,
13084 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2_MMode2", SND_SOC_NOPM,
13087 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3_MMode2", SND_SOC_NOPM,
13090 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4_MMode2", SND_SOC_NOPM,
13093 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5_MMode2", SND_SOC_NOPM,
13096 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICEMMODE2,
13097 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013098};
13099
13100static const struct snd_kcontrol_new tx_voip_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013101 SOC_DOUBLE_EXT("PRI_TX_Voip", SND_SOC_NOPM,
13102 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013103 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13104 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013105 SOC_DOUBLE_EXT("MI2S_TX_Voip", SND_SOC_NOPM,
13106 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013107 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13108 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013109 SOC_DOUBLE_EXT("SLIM_0_TX_Voip", SND_SOC_NOPM,
13110 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013111 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13112 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013113 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_Voip", SND_SOC_NOPM,
13114 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013115 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13116 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013117 SOC_DOUBLE_EXT("AFE_PCM_TX_Voip", SND_SOC_NOPM,
13118 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013119 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13120 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013121 SOC_DOUBLE_EXT("AUX_PCM_TX_Voip", SND_SOC_NOPM,
13122 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013123 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13124 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013125 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13126 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013127 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13128 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013129 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13130 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013131 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13132 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013133 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13134 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013135 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13136 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013137 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_Voip", SND_SOC_NOPM,
13138 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013139 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13140 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013141 SOC_DOUBLE_EXT("PRI_MI2S_TX_Voip", SND_SOC_NOPM,
13142 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013143 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13144 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013145 SOC_DOUBLE_EXT("TERT_MI2S_TX_Voip", SND_SOC_NOPM,
13146 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013147 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13148 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013149 SOC_DOUBLE_EXT("INT3_MI2S_TX_Voip", SND_SOC_NOPM,
13150 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013151 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13152 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013153 SOC_DOUBLE_EXT("SLIM_7_TX_Voip", SND_SOC_NOPM,
13154 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013155 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13156 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013157 SOC_DOUBLE_EXT("SLIM_8_TX_Voip", SND_SOC_NOPM,
13158 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013159 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13160 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013161 SOC_DOUBLE_EXT("USB_AUDIO_TX_Voip", SND_SOC_NOPM,
13162 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013163 MSM_FRONTEND_DAI_VOIP, 1, 0, msm_routing_get_voice_mixer,
13164 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013165 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13166 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13167 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13168 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13169 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOIP,
13170 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013171 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_Voip", SND_SOC_NOPM,
13172 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOIP,
13173 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13174 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_Voip", SND_SOC_NOPM,
13175 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2_Voip", SND_SOC_NOPM,
13178 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3_Voip", SND_SOC_NOPM,
13181 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4_Voip", SND_SOC_NOPM,
13184 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5_Voip", SND_SOC_NOPM,
13187 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOIP,
13188 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013189};
13190
13191static const struct snd_kcontrol_new tx_voice_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013192 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13193 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013194 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13195 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013196 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13197 MSM_BACKEND_DAI_INT_BT_SCO_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013198 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13199 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013200 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13201 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013202 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13203 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013204 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13205 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013206 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13207 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013208 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13209 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013210 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13211 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013212 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13213 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013214 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13215 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013216 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13217 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013218 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13219 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013220 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13221 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013222 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13223 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013224 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13225 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013226 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13227 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013228 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13229 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013230 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13231 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013232 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13233 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013234 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13235 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013236 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13237 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013238 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13239 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013240 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13241 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013242 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13243 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013244 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13245 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013246 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13247 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013248 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13249 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013250 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13251 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013252 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13253 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013254 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13255 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013256 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13257 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013258 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13259 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013260 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13261 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013262 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13263 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013264 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13265 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013266 MSM_FRONTEND_DAI_VOICE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13267 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013268 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13269 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13270 1, 0, msm_routing_get_voice_stub_mixer,
13271 msm_routing_put_voice_stub_mixer),
13272 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13273 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13274 1, 0, msm_routing_get_voice_stub_mixer,
13275 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013276 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13277 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE_STUB,
13278 1, 0, msm_routing_get_voice_stub_mixer,
13279 msm_routing_put_voice_stub_mixer),
13280 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13281 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE_STUB,
13282 1, 0, msm_routing_get_voice_stub_mixer,
13283 msm_routing_put_voice_stub_mixer),
13284 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13285 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE_STUB,
13286 1, 0, msm_routing_get_voice_stub_mixer,
13287 msm_routing_put_voice_stub_mixer),
13288 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13289 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE_STUB,
13290 1, 0, msm_routing_get_voice_stub_mixer,
13291 msm_routing_put_voice_stub_mixer),
13292 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13293 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE_STUB,
13294 1, 0, msm_routing_get_voice_stub_mixer,
13295 msm_routing_put_voice_stub_mixer),
13296 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13297 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE_STUB,
13298 1, 0, msm_routing_get_voice_stub_mixer,
13299 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013300};
13301
13302static const struct snd_kcontrol_new tx_voice2_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013303 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13304 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013305 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13306 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013307 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13308 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013309 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13310 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013311 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13312 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013313 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13314 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013315 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13316 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013317 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13318 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013319 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13320 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013321 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13322 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013323 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13324 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013325 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13326 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013327 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13328 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013329 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13330 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013331 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13332 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013333 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13334 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013335 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13336 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013337 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13338 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013339 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13340 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013341 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13342 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013343 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13344 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013345 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13346 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013347 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13348 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013349 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13350 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013351 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13352 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013353 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13354 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013355 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13356 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013357 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13358 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013359 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13360 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013361 MSM_FRONTEND_DAI_VOICE2_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13362 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013363 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13364 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13365 1, 0, msm_routing_get_voice_stub_mixer,
13366 msm_routing_put_voice_stub_mixer),
13367 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13368 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13369 1, 0, msm_routing_get_voice_stub_mixer,
13370 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013371 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13372 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOICE2_STUB,
13373 1, 0, msm_routing_get_voice_stub_mixer,
13374 msm_routing_put_voice_stub_mixer),
13375 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13376 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOICE2_STUB,
13377 1, 0, msm_routing_get_voice_stub_mixer,
13378 msm_routing_put_voice_stub_mixer),
13379 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13380 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOICE2_STUB,
13381 1, 0, msm_routing_get_voice_stub_mixer,
13382 msm_routing_put_voice_stub_mixer),
13383 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13384 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOICE2_STUB,
13385 1, 0, msm_routing_get_voice_stub_mixer,
13386 msm_routing_put_voice_stub_mixer),
13387 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13388 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOICE2_STUB,
13389 1, 0, msm_routing_get_voice_stub_mixer,
13390 msm_routing_put_voice_stub_mixer),
13391 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13392 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOICE2_STUB,
13393 1, 0, msm_routing_get_voice_stub_mixer,
13394 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013395};
13396
13397static const struct snd_kcontrol_new tx_volte_stub_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013398 SOC_DOUBLE_EXT("STUB_TX_HL", SND_SOC_NOPM,
13399 MSM_BACKEND_DAI_EXTPROC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013400 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13401 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013402 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13403 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013404 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13405 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013406 SOC_DOUBLE_EXT("STUB_1_TX_HL", SND_SOC_NOPM,
13407 MSM_BACKEND_DAI_EXTPROC_EC_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013408 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13409 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013410 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13411 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013412 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13413 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013414 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13415 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013416 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13417 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013418 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13419 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013420 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13421 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013422 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13423 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013424 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13425 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013426 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13427 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013428 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13429 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013430 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13431 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013432 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13433 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013434 SOC_DOUBLE_EXT("SLIM_3_TX", SND_SOC_NOPM,
13435 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013436 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13437 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013438 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13439 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013440 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13441 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013442 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13443 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013444 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13445 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013446 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13447 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013448 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13449 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013450 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13451 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013452 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13453 msm_routing_put_voice_stub_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013454 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13455 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013456 MSM_FRONTEND_DAI_VOLTE_STUB, 1, 0, msm_routing_get_voice_stub_mixer,
13457 msm_routing_put_voice_stub_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013458 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13459 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13460 1, 0, msm_routing_get_voice_stub_mixer,
13461 msm_routing_put_voice_stub_mixer),
13462 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
13463 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13464 1, 0, msm_routing_get_voice_stub_mixer,
13465 msm_routing_put_voice_stub_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013466 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0", SND_SOC_NOPM,
13467 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_VOLTE_STUB,
13468 1, 0, msm_routing_get_voice_stub_mixer,
13469 msm_routing_put_voice_stub_mixer),
13470 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1", SND_SOC_NOPM,
13471 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, MSM_FRONTEND_DAI_VOLTE_STUB,
13472 1, 0, msm_routing_get_voice_stub_mixer,
13473 msm_routing_put_voice_stub_mixer),
13474 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_2", SND_SOC_NOPM,
13475 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, MSM_FRONTEND_DAI_VOLTE_STUB,
13476 1, 0, msm_routing_get_voice_stub_mixer,
13477 msm_routing_put_voice_stub_mixer),
13478 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13479 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, MSM_FRONTEND_DAI_VOLTE_STUB,
13480 1, 0, msm_routing_get_voice_stub_mixer,
13481 msm_routing_put_voice_stub_mixer),
13482 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_4", SND_SOC_NOPM,
13483 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, MSM_FRONTEND_DAI_VOLTE_STUB,
13484 1, 0, msm_routing_get_voice_stub_mixer,
13485 msm_routing_put_voice_stub_mixer),
13486 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_5", SND_SOC_NOPM,
13487 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_VOLTE_STUB,
13488 1, 0, msm_routing_get_voice_stub_mixer,
13489 msm_routing_put_voice_stub_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013490};
13491
13492static const struct snd_kcontrol_new tx_qchat_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013493 SOC_DOUBLE_EXT("PRI_TX_QCHAT", SND_SOC_NOPM,
13494 MSM_BACKEND_DAI_PRI_I2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013495 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13496 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013497 SOC_DOUBLE_EXT("SLIM_0_TX_QCHAT", SND_SOC_NOPM,
13498 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013499 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13500 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013501 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX_QCHAT", SND_SOC_NOPM,
13502 MSM_BACKEND_DAI_INT_BT_SCO_TX,
13503 MSM_FRONTEND_DAI_QCHAT, 1, 0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013504 msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013505 SOC_DOUBLE_EXT("AFE_PCM_TX_QCHAT", SND_SOC_NOPM,
13506 MSM_BACKEND_DAI_AFE_PCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013507 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13508 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013509 SOC_DOUBLE_EXT("AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13510 MSM_BACKEND_DAI_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013511 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13512 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013513 SOC_DOUBLE_EXT("SEC_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13514 MSM_BACKEND_DAI_SEC_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013515 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13516 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013517 SOC_DOUBLE_EXT("TERT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13518 MSM_BACKEND_DAI_TERT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013519 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13520 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013521 SOC_DOUBLE_EXT("QUAT_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13522 MSM_BACKEND_DAI_QUAT_AUXPCM_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013523 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13524 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013525 SOC_DOUBLE_EXT("QUIN_AUX_PCM_TX_QCHAT", SND_SOC_NOPM,
13526 MSM_BACKEND_DAI_QUIN_AUXPCM_TX,
Rohit Kumara5077932017-09-10 22:05:05 +053013527 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13528 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013529 SOC_DOUBLE_EXT("MI2S_TX_QCHAT", SND_SOC_NOPM,
13530 MSM_BACKEND_DAI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013531 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13532 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013533 SOC_DOUBLE_EXT("PRI_MI2S_TX_QCHAT", SND_SOC_NOPM,
13534 MSM_BACKEND_DAI_PRI_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013535 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13536 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013537 SOC_DOUBLE_EXT("TERT_MI2S_TX_QCHAT", SND_SOC_NOPM,
13538 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013539 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13540 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013541 SOC_DOUBLE_EXT("INT3_MI2S_TX_QCHAT", SND_SOC_NOPM,
13542 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013543 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13544 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013545 SOC_DOUBLE_EXT("SLIM_7_TX_QCHAT", SND_SOC_NOPM,
13546 MSM_BACKEND_DAI_SLIMBUS_7_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013547 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13548 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013549 SOC_DOUBLE_EXT("SLIM_8_TX_QCHAT", SND_SOC_NOPM,
13550 MSM_BACKEND_DAI_SLIMBUS_8_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013551 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13552 msm_routing_put_voice_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013553 SOC_DOUBLE_EXT("USB_AUDIO_TX_QCHAT", SND_SOC_NOPM,
13554 MSM_BACKEND_DAI_USB_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013555 MSM_FRONTEND_DAI_QCHAT, 1, 0, msm_routing_get_voice_mixer,
13556 msm_routing_put_voice_mixer),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053013557 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13558 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13559 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13560 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13561 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1, MSM_FRONTEND_DAI_QCHAT,
13562 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053013563 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_0_QCHAT", SND_SOC_NOPM,
13564 MSM_BACKEND_DAI_TX_CDC_DMA_TX_0, MSM_FRONTEND_DAI_QCHAT,
13565 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
13566 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_1_QCHAT", SND_SOC_NOPM,
13567 MSM_BACKEND_DAI_TX_CDC_DMA_TX_1, 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_2_QCHAT", SND_SOC_NOPM,
13570 MSM_BACKEND_DAI_TX_CDC_DMA_TX_2, 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_3_QCHAT", SND_SOC_NOPM,
13573 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 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_4_QCHAT", SND_SOC_NOPM,
13576 MSM_BACKEND_DAI_TX_CDC_DMA_TX_4, 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_5_QCHAT", SND_SOC_NOPM,
13579 MSM_BACKEND_DAI_TX_CDC_DMA_TX_5, MSM_FRONTEND_DAI_QCHAT,
13580 1, 0, msm_routing_get_voice_mixer, msm_routing_put_voice_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013581};
13582
13583static const struct snd_kcontrol_new int0_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013584 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13585 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013586 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013588 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13589 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013590 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13591 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013592 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13593 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013594 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13595 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013596 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13597 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013598 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13599 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013600 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13601 MSM_BACKEND_DAI_INT0_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013602 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13603 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013604 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13605 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013606 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013608 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13609 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013610 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13611 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013612 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13613 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013614 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13615 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013616 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13617 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013618 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13619 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013620 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13621 MSM_BACKEND_DAI_INT0_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013622 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13623 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013624 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13625 MSM_BACKEND_DAI_INT0_MI2S_RX,
13626 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13627 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013628};
13629
13630static const struct snd_kcontrol_new int4_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013631 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13632 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013633 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13634 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013635 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13636 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013637 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13638 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013639 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13640 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013641 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013643 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13644 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013645 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13646 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013647 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13648 MSM_BACKEND_DAI_INT4_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013649 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013651 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
13652 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013653 MSM_BACKEND_DAI_INT3_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13654 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013655 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13656 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013657 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13658 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013659 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13660 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013661 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013663 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13664 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013665 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13666 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013667 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13668 MSM_BACKEND_DAI_INT4_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013669 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13670 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013671 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13672 MSM_BACKEND_DAI_INT4_MI2S_RX,
13673 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13674 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013675};
13676
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013677static const struct snd_kcontrol_new wsa_cdc_dma_rx_0_port_mixer_controls[] = {
13678 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
13679 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13680 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0, 1, 0, msm_routing_get_port_mixer,
13681 msm_routing_put_port_mixer),
13682 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13683 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13684 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13685 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013686 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13687 MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0,
13688 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13689 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013690};
13691
13692static const struct snd_kcontrol_new rx_cdc_dma_rx_0_port_mixer_controls[] = {
13693 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
13694 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13695 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3, 1, 0, msm_routing_get_port_mixer,
13696 msm_routing_put_port_mixer),
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080013697 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13698 MSM_BACKEND_DAI_RX_CDC_DMA_RX_0,
13699 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13700 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013701 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13702 MSM_BACKEND_DAI_INT4_MI2S_RX,
13703 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13704 msm_routing_put_port_mixer),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053013705};
13706
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013707static const struct snd_kcontrol_new sbus_0_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013708 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13709 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013710 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13711 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013712 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13713 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013714 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013716 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13717 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013718 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13719 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013720 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13721 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013722 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13723 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013724 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13725 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013726 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13727 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013728 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13729 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013730 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13731 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013732 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13733 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013734 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013736 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13737 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013738 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13739 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013740 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13741 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013742 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013744 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13745 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013746 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13747 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013748 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13749 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013750 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13751 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013752 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13753 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013754 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013756 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13757 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013758 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13759 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013760 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13761 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013762 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013764 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13765 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013766 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13767 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013768 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
13769 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013770 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13771 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013772 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13773 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013774 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013776 SOC_DOUBLE_EXT("PRI_MI2S_RX", SND_SOC_NOPM,
13777 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013778 MSM_BACKEND_DAI_PRI_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13779 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013780 SOC_DOUBLE_EXT("SEC_MI2S_RX", SND_SOC_NOPM,
13781 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013782 MSM_BACKEND_DAI_SECONDARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013784 SOC_DOUBLE_EXT("TERT_MI2S_RX", SND_SOC_NOPM,
13785 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013786 MSM_BACKEND_DAI_TERTIARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13787 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013788 SOC_DOUBLE_EXT("QUAT_MI2S_RX", SND_SOC_NOPM,
13789 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013790 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13791 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013792 SOC_DOUBLE_EXT("QUIN_MI2S_RX", SND_SOC_NOPM,
13793 MSM_BACKEND_DAI_SLIMBUS_0_RX,
Surendar Karka3ef3d812018-09-28 18:52:35 +053013794 MSM_BACKEND_DAI_QUINARY_MI2S_RX, 1, 0, msm_routing_get_port_mixer,
13795 msm_routing_put_port_mixer),
13796 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13797 MSM_BACKEND_DAI_SLIMBUS_0_RX,
13798 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
Rohit Kumara5077932017-09-10 22:05:05 +053013799 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013800};
13801
13802static const struct snd_kcontrol_new aux_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013803 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13804 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013805 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13806 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013807 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13808 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013809 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13810 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013811 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13812 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013813 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13814 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013815 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13816 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013817 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013819 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
13820 MSM_BACKEND_DAI_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013821 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0, msm_routing_get_port_mixer,
13822 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013823 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
13824 MSM_BACKEND_DAI_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013825 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13826 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013827};
13828
13829static const struct snd_kcontrol_new sec_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013830 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13831 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013832 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013834 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13835 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013836 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13837 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013838 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13839 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013840 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013842 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13843 MSM_BACKEND_DAI_SEC_AUXPCM_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080013844 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13845 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013846};
13847
13848static const struct snd_kcontrol_new tert_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013849 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13850 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013851 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13852 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013853 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13854 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013855 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013857 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13858 MSM_BACKEND_DAI_TERT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013859 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13860 msm_routing_put_port_mixer),
13861};
13862
13863static const struct snd_kcontrol_new quat_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013864 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13865 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013866 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13867 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013868 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13869 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013870 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013872 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13873 MSM_BACKEND_DAI_QUAT_AUXPCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013874 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13875 msm_routing_put_port_mixer),
13876};
13877
Rohit Kumara5077932017-09-10 22:05:05 +053013878static const struct snd_kcontrol_new quin_auxpcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013879 SOC_DOUBLE_EXT("QUIN_AUXPCM_UL_TX", SND_SOC_NOPM,
13880 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013881 MSM_BACKEND_DAI_QUIN_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13882 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013883 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13884 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013885 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013887 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13888 MSM_BACKEND_DAI_QUIN_AUXPCM_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053013889 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13890 msm_routing_put_port_mixer),
13891};
13892
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013893static const struct snd_kcontrol_new sbus_1_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013894 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13895 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013896 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13897 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013898 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
13899 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013900 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0, msm_routing_get_port_mixer,
13901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013902 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13903 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013904 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13905 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013906 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13907 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013908 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13909 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013910 SOC_DOUBLE_EXT("TERT_AUXPCM_UL_TX", SND_SOC_NOPM,
13911 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013912 MSM_BACKEND_DAI_TERT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13913 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013914 SOC_DOUBLE_EXT("QUAT_AUXPCM_UL_TX", SND_SOC_NOPM,
13915 MSM_BACKEND_DAI_SLIMBUS_1_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013916 MSM_BACKEND_DAI_QUAT_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13917 msm_routing_put_port_mixer),
13918};
13919
13920static const struct snd_kcontrol_new sbus_3_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013921 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_RX", SND_SOC_NOPM,
13922 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013923 MSM_BACKEND_DAI_INT_BT_SCO_RX, 1, 0, msm_routing_get_port_mixer,
13924 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013925 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13926 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013927 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13928 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013929 SOC_DOUBLE_EXT("AFE_PCM_RX", SND_SOC_NOPM,
13930 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013931 MSM_BACKEND_DAI_AFE_PCM_RX, 1, 0, msm_routing_get_port_mixer,
13932 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013933 SOC_DOUBLE_EXT("AUX_PCM_RX", SND_SOC_NOPM,
13934 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013935 MSM_BACKEND_DAI_AUXPCM_RX, 1, 0, msm_routing_get_port_mixer,
13936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013937 SOC_DOUBLE_EXT("SLIM_0_RX", SND_SOC_NOPM,
13938 MSM_BACKEND_DAI_SLIMBUS_3_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013939 MSM_BACKEND_DAI_SLIMBUS_0_RX, 1, 0, msm_routing_get_port_mixer,
13940 msm_routing_put_port_mixer),
13941};
13942
13943static const struct snd_kcontrol_new sbus_6_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013944 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
13945 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013946 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
13947 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013948 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
13949 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013950 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
13951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013952 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
13953 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013954 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
13955 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013956 SOC_DOUBLE_EXT("SLIM_7_TX", SND_SOC_NOPM,
13957 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013958 MSM_BACKEND_DAI_SLIMBUS_7_TX, 1, 0, msm_routing_get_port_mixer,
13959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013960 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
13961 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013962 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
13963 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013964 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
13965 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013966 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13967 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013968 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
13969 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013970 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
13971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013972 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
13973 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013974 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13975 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013976 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
13977 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013978 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013980 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
13981 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013982 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13983 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013984 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
13985 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013986 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
13987 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080013988 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
13989 MSM_BACKEND_DAI_SLIMBUS_6_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013990 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
13991 msm_routing_put_port_mixer),
Surendar Karka3ef3d812018-09-28 18:52:35 +053013992 SOC_DOUBLE_EXT("SLIM_9_TX", SND_SOC_NOPM,
13993 MSM_BACKEND_DAI_SLIMBUS_6_RX,
13994 MSM_BACKEND_DAI_SLIMBUS_9_TX, 1, 0, msm_routing_get_port_mixer,
13995 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053013996};
13997
13998static const struct snd_kcontrol_new bt_sco_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080013999 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14000 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014001 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14002 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014003 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14004 MSM_BACKEND_DAI_INT_BT_SCO_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014005 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14006 msm_routing_put_port_mixer),
14007};
14008
14009static const struct snd_kcontrol_new afe_pcm_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014010 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14011 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014012 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14013 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014014 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14015 MSM_BACKEND_DAI_AFE_PCM_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014016 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14017 msm_routing_put_port_mixer),
14018};
14019
14020
14021static const struct snd_kcontrol_new hdmi_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014022 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14023 MSM_BACKEND_DAI_HDMI_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014024 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14025 msm_routing_put_port_mixer),
14026};
14027
14028static const struct snd_kcontrol_new display_port_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014029 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14030 MSM_BACKEND_DAI_DISPLAY_PORT_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014031 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14032 msm_routing_put_port_mixer),
14033};
14034
Karthikeyan Mani57550082018-05-03 18:43:58 -070014035static const struct snd_kcontrol_new display_port_rx1_port_mixer_controls[] = {
14036 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14037 MSM_BACKEND_DAI_DISPLAY_PORT_RX_1,
14038 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14039 msm_routing_put_port_mixer),
14040};
14041
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014042static const struct snd_kcontrol_new sec_i2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014043 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14044 MSM_BACKEND_DAI_SEC_I2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014045 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14046 msm_routing_put_port_mixer),
14047};
14048
14049static const struct snd_kcontrol_new mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014050 SOC_DOUBLE_EXT("SLIM_1_TX", SND_SOC_NOPM,
14051 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014052 MSM_BACKEND_DAI_SLIMBUS_1_TX, 1, 0, msm_routing_get_port_mixer,
14053 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014054 SOC_DOUBLE_EXT("MI2S_TX", SND_SOC_NOPM,
14055 MSM_BACKEND_DAI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014056 MSM_BACKEND_DAI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14057 msm_routing_put_port_mixer),
14058};
14059
14060static const struct snd_kcontrol_new primary_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014061 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14062 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014063 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14064 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014065 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14066 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014067 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14068 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014069 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14070 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014071 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014073 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14074 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014075 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14076 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014077 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14078 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014079 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0, msm_routing_get_port_mixer,
14080 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014081 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14082 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014083 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14084 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014085 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14086 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014087 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14088 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014089 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14090 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014091 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014093 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14094 MSM_BACKEND_DAI_PRI_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014095 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14096 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014097 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14098 MSM_BACKEND_DAI_PRI_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080014099 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14100 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014101};
14102
14103static const struct snd_kcontrol_new usb_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014104 SOC_DOUBLE_EXT("USB_AUDIO_TX", SND_SOC_NOPM,
14105 MSM_BACKEND_DAI_USB_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014106 MSM_BACKEND_DAI_USB_TX, 1, 0, msm_routing_get_port_mixer,
14107 msm_routing_put_port_mixer),
14108};
14109
14110static const struct snd_kcontrol_new quat_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014111 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14112 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014113 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14114 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014115 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14116 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014117 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14118 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014119 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14120 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014121 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
14122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014123 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14124 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014125 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
14126 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014127 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14128 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014129 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014131 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14132 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014133 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14134 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014135 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14136 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014137 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14138 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014139 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14140 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014141 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14142 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014143 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14144 MSM_BACKEND_DAI_QUATERNARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014145 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14146 msm_routing_put_port_mixer),
14147};
14148
Rohit Kumara5077932017-09-10 22:05:05 +053014149static const struct snd_kcontrol_new quin_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014150 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14151 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014152 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14153 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014154 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
14155 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014156 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14157 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014158 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
14159 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014160 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
14161 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014162 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14163 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014164 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014166 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
14167 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014168 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14169 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014170 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14171 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014172 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
14173 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014174 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
14175 MSM_BACKEND_DAI_QUINARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053014176 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
14177 msm_routing_put_port_mixer),
14178};
14179
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014180static const struct snd_kcontrol_new pri_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014181 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14182 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014183 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14184 msm_routing_get_port_mixer,
14185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014186 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14187 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014188 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14189 msm_routing_get_port_mixer,
14190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014191 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14192 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014193 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14194 msm_routing_get_port_mixer,
14195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014196 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14197 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014198 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14199 msm_routing_get_port_mixer,
14200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014201 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14202 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014203 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14204 msm_routing_get_port_mixer,
14205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014206 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14207 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014208 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14209 msm_routing_get_port_mixer,
14210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014211 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14212 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014213 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14214 msm_routing_get_port_mixer,
14215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014216 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14217 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014218 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14219 msm_routing_get_port_mixer,
14220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014221 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14222 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014223 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14224 msm_routing_get_port_mixer,
14225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014226 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14227 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014228 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14229 msm_routing_get_port_mixer,
14230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014231 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14232 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014233 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14234 msm_routing_get_port_mixer,
14235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014236 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14237 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014238 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14239 msm_routing_get_port_mixer,
14240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014241 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14242 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014243 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14244 msm_routing_get_port_mixer,
14245 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014246 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14247 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014248 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14249 msm_routing_get_port_mixer,
14250 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014251 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14252 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014253 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14254 msm_routing_get_port_mixer,
14255 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014256 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14257 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014258 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14259 msm_routing_get_port_mixer,
14260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014261 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14262 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014263 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14264 msm_routing_get_port_mixer,
14265 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014266 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14267 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014268 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14269 msm_routing_get_port_mixer,
14270 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014271 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14272 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014273 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14274 msm_routing_get_port_mixer,
14275 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014276 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14277 MSM_BACKEND_DAI_PRI_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014278 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14279 msm_routing_get_port_mixer,
14280 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014281};
14282
14283static const struct snd_kcontrol_new pri_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014284 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14285 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014286 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14287 msm_routing_get_port_mixer,
14288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014289 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14290 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014291 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14292 msm_routing_get_port_mixer,
14293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014294 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14295 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014296 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14297 msm_routing_get_port_mixer,
14298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014299 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14300 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014301 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14302 msm_routing_get_port_mixer,
14303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014304 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14305 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014306 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14307 msm_routing_get_port_mixer,
14308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014309 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14310 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014311 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14312 msm_routing_get_port_mixer,
14313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014314 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14315 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014316 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14317 msm_routing_get_port_mixer,
14318 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014319 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14320 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014321 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14322 msm_routing_get_port_mixer,
14323 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014324 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14325 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014326 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14327 msm_routing_get_port_mixer,
14328 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014329 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14330 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014331 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14332 msm_routing_get_port_mixer,
14333 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014334 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14335 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014336 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14337 msm_routing_get_port_mixer,
14338 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014339 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14340 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014341 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14342 msm_routing_get_port_mixer,
14343 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014344 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14345 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014346 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14347 msm_routing_get_port_mixer,
14348 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014349 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14350 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014351 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14352 msm_routing_get_port_mixer,
14353 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014354 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14355 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014356 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14357 msm_routing_get_port_mixer,
14358 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014359 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14360 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014361 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14362 msm_routing_get_port_mixer,
14363 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014364 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14365 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014366 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14367 msm_routing_get_port_mixer,
14368 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014369 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14370 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014371 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14372 msm_routing_get_port_mixer,
14373 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014374 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14375 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014376 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14377 msm_routing_get_port_mixer,
14378 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014379 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14380 MSM_BACKEND_DAI_PRI_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014381 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14382 msm_routing_get_port_mixer,
14383 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014384};
14385
14386static const struct snd_kcontrol_new pri_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014387 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14388 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014389 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14390 msm_routing_get_port_mixer,
14391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014392 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14393 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014394 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14395 msm_routing_get_port_mixer,
14396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014397 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14398 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014399 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14400 msm_routing_get_port_mixer,
14401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014402 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14403 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014404 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14405 msm_routing_get_port_mixer,
14406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014407 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14408 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014409 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14410 msm_routing_get_port_mixer,
14411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014412 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14413 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014414 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14415 msm_routing_get_port_mixer,
14416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014417 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14418 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014419 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14420 msm_routing_get_port_mixer,
14421 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014422 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14423 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014424 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14425 msm_routing_get_port_mixer,
14426 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014427 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14428 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014429 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14430 msm_routing_get_port_mixer,
14431 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014432 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14433 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014434 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14435 msm_routing_get_port_mixer,
14436 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014437 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14438 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014439 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14440 msm_routing_get_port_mixer,
14441 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014442 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14443 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014444 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14445 msm_routing_get_port_mixer,
14446 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014447 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14448 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014449 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14450 msm_routing_get_port_mixer,
14451 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014452 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14453 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014454 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14455 msm_routing_get_port_mixer,
14456 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014457 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14458 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014459 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14460 msm_routing_get_port_mixer,
14461 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014462 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14463 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014464 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14465 msm_routing_get_port_mixer,
14466 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014467 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14468 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014469 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14470 msm_routing_get_port_mixer,
14471 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014472 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14473 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014474 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14475 msm_routing_get_port_mixer,
14476 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014477 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14478 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014479 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14480 msm_routing_get_port_mixer,
14481 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014482 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14483 MSM_BACKEND_DAI_PRI_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014484 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14485 msm_routing_get_port_mixer,
14486 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014487};
14488
14489static const struct snd_kcontrol_new pri_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014490 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14491 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014492 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14493 msm_routing_get_port_mixer,
14494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014495 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14496 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014497 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14498 msm_routing_get_port_mixer,
14499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014500 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14501 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014502 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14503 msm_routing_get_port_mixer,
14504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014505 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14506 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014507 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14508 msm_routing_get_port_mixer,
14509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014510 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14511 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014512 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14513 msm_routing_get_port_mixer,
14514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014515 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14516 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014517 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14518 msm_routing_get_port_mixer,
14519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014520 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14521 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014522 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14523 msm_routing_get_port_mixer,
14524 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014525 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14526 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014527 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14528 msm_routing_get_port_mixer,
14529 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014530 SOC_DOUBLE_EXT("PRI_TDM_TX_0", SND_SOC_NOPM,
14531 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014532 MSM_BACKEND_DAI_PRI_TDM_TX_0, 1, 0,
14533 msm_routing_get_port_mixer,
14534 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014535 SOC_DOUBLE_EXT("PRI_TDM_TX_1", SND_SOC_NOPM,
14536 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014537 MSM_BACKEND_DAI_PRI_TDM_TX_1, 1, 0,
14538 msm_routing_get_port_mixer,
14539 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014540 SOC_DOUBLE_EXT("PRI_TDM_TX_2", SND_SOC_NOPM,
14541 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014542 MSM_BACKEND_DAI_PRI_TDM_TX_2, 1, 0,
14543 msm_routing_get_port_mixer,
14544 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014545 SOC_DOUBLE_EXT("PRI_TDM_TX_3", SND_SOC_NOPM,
14546 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014547 MSM_BACKEND_DAI_PRI_TDM_TX_3, 1, 0,
14548 msm_routing_get_port_mixer,
14549 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014550 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14551 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014552 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14553 msm_routing_get_port_mixer,
14554 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014555 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14556 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014557 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14558 msm_routing_get_port_mixer,
14559 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014560 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14561 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014562 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14563 msm_routing_get_port_mixer,
14564 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014565 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14566 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014567 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14568 msm_routing_get_port_mixer,
14569 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014570 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14571 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014572 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14573 msm_routing_get_port_mixer,
14574 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014575 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14576 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014577 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14578 msm_routing_get_port_mixer,
14579 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014580 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14581 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014582 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14583 msm_routing_get_port_mixer,
14584 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014585 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14586 MSM_BACKEND_DAI_PRI_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014587 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14588 msm_routing_get_port_mixer,
14589 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014590};
14591
14592static const struct snd_kcontrol_new sec_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014593 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14594 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014595 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14596 msm_routing_get_port_mixer,
14597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014598 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14599 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014600 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14601 msm_routing_get_port_mixer,
14602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014603 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14604 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014605 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14606 msm_routing_get_port_mixer,
14607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014608 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14609 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014610 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14611 msm_routing_get_port_mixer,
14612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014613 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14614 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014615 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14616 msm_routing_get_port_mixer,
14617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014618 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14619 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014620 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14621 msm_routing_get_port_mixer,
14622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014623 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14624 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014625 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14626 msm_routing_get_port_mixer,
14627 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014628 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14629 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014630 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14631 msm_routing_get_port_mixer,
14632 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014633 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14634 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014635 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14636 msm_routing_get_port_mixer,
14637 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014638 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14639 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014640 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14641 msm_routing_get_port_mixer,
14642 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014643 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14644 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014645 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14646 msm_routing_get_port_mixer,
14647 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014648 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14649 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014650 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14651 msm_routing_get_port_mixer,
14652 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014653 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14654 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014655 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14656 msm_routing_get_port_mixer,
14657 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014658 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14659 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014660 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14661 msm_routing_get_port_mixer,
14662 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014663 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14664 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014665 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14666 msm_routing_get_port_mixer,
14667 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014668 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14669 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014670 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14671 msm_routing_get_port_mixer,
14672 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014673 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14674 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014675 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14676 msm_routing_get_port_mixer,
14677 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014678 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14679 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014680 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14681 msm_routing_get_port_mixer,
14682 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014683 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14684 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014685 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14686 msm_routing_get_port_mixer,
14687 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014688 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14689 MSM_BACKEND_DAI_SEC_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053014690 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14691 msm_routing_get_port_mixer,
14692 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014693};
14694
14695static const struct snd_kcontrol_new sec_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014696 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14697 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014698 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14699 msm_routing_get_port_mixer,
14700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014701 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14702 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014703 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14704 msm_routing_get_port_mixer,
14705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014706 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14707 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014708 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14709 msm_routing_get_port_mixer,
14710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014711 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14712 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014713 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14714 msm_routing_get_port_mixer,
14715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014716 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14717 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014718 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14719 msm_routing_get_port_mixer,
14720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014721 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14722 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014723 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14724 msm_routing_get_port_mixer,
14725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014726 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14727 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014728 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14729 msm_routing_get_port_mixer,
14730 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014731 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14732 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014733 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14734 msm_routing_get_port_mixer,
14735 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014736 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14737 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014738 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14739 msm_routing_get_port_mixer,
14740 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014741 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14742 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014743 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14744 msm_routing_get_port_mixer,
14745 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014746 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14747 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014748 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14749 msm_routing_get_port_mixer,
14750 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014751 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14752 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014753 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14754 msm_routing_get_port_mixer,
14755 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014756 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14757 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014758 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14759 msm_routing_get_port_mixer,
14760 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014761 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14762 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014763 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14764 msm_routing_get_port_mixer,
14765 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014766 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14767 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014768 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14769 msm_routing_get_port_mixer,
14770 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014771 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14772 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014773 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14774 msm_routing_get_port_mixer,
14775 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014776 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14777 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014778 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14779 msm_routing_get_port_mixer,
14780 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014781 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14782 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014783 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14784 msm_routing_get_port_mixer,
14785 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014786 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14787 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014788 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14789 msm_routing_get_port_mixer,
14790 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014791 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14792 MSM_BACKEND_DAI_SEC_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053014793 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14794 msm_routing_get_port_mixer,
14795 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014796};
14797
14798static const struct snd_kcontrol_new sec_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014799 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14800 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014801 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14802 msm_routing_get_port_mixer,
14803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014804 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14805 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014806 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14807 msm_routing_get_port_mixer,
14808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014809 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14810 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014811 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14812 msm_routing_get_port_mixer,
14813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014814 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14815 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014816 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14817 msm_routing_get_port_mixer,
14818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014819 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14820 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014821 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14822 msm_routing_get_port_mixer,
14823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014824 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14825 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014826 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14827 msm_routing_get_port_mixer,
14828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014829 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14830 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014831 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14832 msm_routing_get_port_mixer,
14833 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014834 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14835 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014836 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14837 msm_routing_get_port_mixer,
14838 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014839 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14840 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014841 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14842 msm_routing_get_port_mixer,
14843 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014844 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14845 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014846 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14847 msm_routing_get_port_mixer,
14848 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014849 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14850 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014851 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14852 msm_routing_get_port_mixer,
14853 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014854 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14855 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014856 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14857 msm_routing_get_port_mixer,
14858 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014859 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14860 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014861 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14862 msm_routing_get_port_mixer,
14863 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014864 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14865 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014866 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14867 msm_routing_get_port_mixer,
14868 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014869 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14870 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014871 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14872 msm_routing_get_port_mixer,
14873 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014874 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14875 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014876 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14877 msm_routing_get_port_mixer,
14878 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014879 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14880 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014881 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14882 msm_routing_get_port_mixer,
14883 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014884 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14885 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014886 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14887 msm_routing_get_port_mixer,
14888 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014889 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14890 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014891 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14892 msm_routing_get_port_mixer,
14893 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014894 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14895 MSM_BACKEND_DAI_SEC_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053014896 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
14897 msm_routing_get_port_mixer,
14898 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014899};
14900
14901static const struct snd_kcontrol_new sec_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080014902 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
14903 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014904 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
14905 msm_routing_get_port_mixer,
14906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014907 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
14908 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014909 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
14910 msm_routing_get_port_mixer,
14911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014912 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
14913 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014914 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
14915 msm_routing_get_port_mixer,
14916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014917 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
14918 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014919 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
14920 msm_routing_get_port_mixer,
14921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014922 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
14923 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014924 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
14925 msm_routing_get_port_mixer,
14926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014927 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
14928 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014929 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
14930 msm_routing_get_port_mixer,
14931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014932 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
14933 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014934 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
14935 msm_routing_get_port_mixer,
14936 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014937 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
14938 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014939 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
14940 msm_routing_get_port_mixer,
14941 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014942 SOC_DOUBLE_EXT("SEC_TDM_TX_0", SND_SOC_NOPM,
14943 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014944 MSM_BACKEND_DAI_SEC_TDM_TX_0, 1, 0,
14945 msm_routing_get_port_mixer,
14946 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014947 SOC_DOUBLE_EXT("SEC_TDM_TX_1", SND_SOC_NOPM,
14948 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014949 MSM_BACKEND_DAI_SEC_TDM_TX_1, 1, 0,
14950 msm_routing_get_port_mixer,
14951 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014952 SOC_DOUBLE_EXT("SEC_TDM_TX_2", SND_SOC_NOPM,
14953 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014954 MSM_BACKEND_DAI_SEC_TDM_TX_2, 1, 0,
14955 msm_routing_get_port_mixer,
14956 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014957 SOC_DOUBLE_EXT("SEC_TDM_TX_3", SND_SOC_NOPM,
14958 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014959 MSM_BACKEND_DAI_SEC_TDM_TX_3, 1, 0,
14960 msm_routing_get_port_mixer,
14961 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014962 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
14963 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014964 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
14965 msm_routing_get_port_mixer,
14966 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014967 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
14968 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014969 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
14970 msm_routing_get_port_mixer,
14971 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014972 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
14973 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014974 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
14975 msm_routing_get_port_mixer,
14976 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014977 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
14978 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053014979 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
14980 msm_routing_get_port_mixer,
14981 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014982 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
14983 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014984 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
14985 msm_routing_get_port_mixer,
14986 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014987 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
14988 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014989 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
14990 msm_routing_get_port_mixer,
14991 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014992 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
14993 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014994 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
14995 msm_routing_get_port_mixer,
14996 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080014997 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
14998 MSM_BACKEND_DAI_SEC_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053014999 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15000 msm_routing_get_port_mixer,
15001 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015002};
15003
Derek Chenfdcc0982018-10-02 15:14:03 -070015004static const struct snd_kcontrol_new sec_tdm_rx_7_port_mixer_controls[] = {
15005 SOC_DOUBLE_EXT("TERT_TDM_TX_7", SND_SOC_NOPM,
15006 MSM_BACKEND_DAI_SEC_TDM_RX_7,
15007 MSM_BACKEND_DAI_TERT_TDM_TX_7, 1, 0,
15008 msm_routing_get_port_mixer,
15009 msm_routing_put_port_mixer),
15010};
15011
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015012static const struct snd_kcontrol_new tert_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015013 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15014 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015015 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15016 msm_routing_get_port_mixer,
15017 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015018 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15019 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015020 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15021 msm_routing_get_port_mixer,
15022 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015023 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15024 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015025 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15026 msm_routing_get_port_mixer,
15027 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015028 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15029 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015030 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15031 msm_routing_get_port_mixer,
15032 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015033 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15034 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015035 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15036 msm_routing_get_port_mixer,
15037 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015038 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15039 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015040 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15041 msm_routing_get_port_mixer,
15042 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015043 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15044 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015045 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15046 msm_routing_get_port_mixer,
15047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015048 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15049 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015050 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15051 msm_routing_get_port_mixer,
15052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015053 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15054 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015055 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15056 msm_routing_get_port_mixer,
15057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015058 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15059 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015060 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15061 msm_routing_get_port_mixer,
15062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015063 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15064 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015065 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15066 msm_routing_get_port_mixer,
15067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015068 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15069 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015070 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15071 msm_routing_get_port_mixer,
15072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015073 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15074 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015075 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15076 msm_routing_get_port_mixer,
15077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015078 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15079 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015080 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15081 msm_routing_get_port_mixer,
15082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015083 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15084 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015085 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15086 msm_routing_get_port_mixer,
15087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015088 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15089 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015090 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15091 msm_routing_get_port_mixer,
15092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015093 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15094 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015095 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15096 msm_routing_get_port_mixer,
15097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015098 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15099 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015100 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15101 msm_routing_get_port_mixer,
15102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015103 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15104 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015105 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15106 msm_routing_get_port_mixer,
15107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015108 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15109 MSM_BACKEND_DAI_TERT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015110 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15111 msm_routing_get_port_mixer,
15112 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015113};
15114
15115static const struct snd_kcontrol_new tert_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015116 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15117 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015118 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15119 msm_routing_get_port_mixer,
15120 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015121 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15122 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015123 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15124 msm_routing_get_port_mixer,
15125 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015126 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15127 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015128 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15129 msm_routing_get_port_mixer,
15130 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015131 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15132 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015133 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15134 msm_routing_get_port_mixer,
15135 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015136 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15137 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015138 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15139 msm_routing_get_port_mixer,
15140 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015141 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15142 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015143 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15144 msm_routing_get_port_mixer,
15145 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015146 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15147 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015148 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15149 msm_routing_get_port_mixer,
15150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015151 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15152 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015153 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15154 msm_routing_get_port_mixer,
15155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015156 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15157 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015158 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15159 msm_routing_get_port_mixer,
15160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015161 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15162 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015163 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15164 msm_routing_get_port_mixer,
15165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015166 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15167 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015168 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15169 msm_routing_get_port_mixer,
15170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015171 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15172 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015173 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15174 msm_routing_get_port_mixer,
15175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015176 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15177 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015178 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15179 msm_routing_get_port_mixer,
15180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015181 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15182 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015183 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15184 msm_routing_get_port_mixer,
15185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015186 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15187 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015188 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15189 msm_routing_get_port_mixer,
15190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015191 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15192 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015193 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15194 msm_routing_get_port_mixer,
15195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015196 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15197 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015198 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15199 msm_routing_get_port_mixer,
15200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015201 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15202 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015203 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15204 msm_routing_get_port_mixer,
15205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015206 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15207 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015208 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15209 msm_routing_get_port_mixer,
15210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015211 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15212 MSM_BACKEND_DAI_TERT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015213 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15214 msm_routing_get_port_mixer,
15215 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015216};
15217
15218static const struct snd_kcontrol_new tert_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015219 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15220 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015221 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15222 msm_routing_get_port_mixer,
15223 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015224 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15225 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015226 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15227 msm_routing_get_port_mixer,
15228 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015229 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15230 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015231 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15232 msm_routing_get_port_mixer,
15233 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015234 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15235 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015236 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15237 msm_routing_get_port_mixer,
15238 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015239 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15240 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015241 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15242 msm_routing_get_port_mixer,
15243 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015244 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15245 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015246 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15247 msm_routing_get_port_mixer,
15248 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015249 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15250 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015251 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15252 msm_routing_get_port_mixer,
15253 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015254 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15255 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015256 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15257 msm_routing_get_port_mixer,
15258 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015259 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15260 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015261 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15262 msm_routing_get_port_mixer,
15263 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015264 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15265 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015266 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15267 msm_routing_get_port_mixer,
15268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015269 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15270 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015271 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15272 msm_routing_get_port_mixer,
15273 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015274 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15275 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015276 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15277 msm_routing_get_port_mixer,
15278 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015279 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15280 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015281 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15282 msm_routing_get_port_mixer,
15283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015284 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15285 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015286 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15287 msm_routing_get_port_mixer,
15288 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015289 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15290 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015291 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15292 msm_routing_get_port_mixer,
15293 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015294 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15295 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015296 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15297 msm_routing_get_port_mixer,
15298 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015299 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15300 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015301 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15302 msm_routing_get_port_mixer,
15303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015304 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15305 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015306 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15307 msm_routing_get_port_mixer,
15308 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015309 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15310 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015311 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15312 msm_routing_get_port_mixer,
15313 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015314 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15315 MSM_BACKEND_DAI_TERT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015316 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15317 msm_routing_get_port_mixer,
15318 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015319};
15320
15321static const struct snd_kcontrol_new tert_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015322 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15323 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015324 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15325 msm_routing_get_port_mixer,
15326 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015327 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15328 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015329 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15330 msm_routing_get_port_mixer,
15331 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015332 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
15333 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015334 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0,
15335 msm_routing_get_port_mixer,
15336 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015337 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15338 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015339 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15340 msm_routing_get_port_mixer,
15341 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015342 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15343 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015344 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15345 msm_routing_get_port_mixer,
15346 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015347 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15348 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015349 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15350 msm_routing_get_port_mixer,
15351 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015352 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15353 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015354 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15355 msm_routing_get_port_mixer,
15356 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015357 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15358 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015359 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15360 msm_routing_get_port_mixer,
15361 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015362 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15363 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015364 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15365 msm_routing_get_port_mixer,
15366 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015367 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15368 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015369 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15370 msm_routing_get_port_mixer,
15371 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015372 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15373 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015374 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15375 msm_routing_get_port_mixer,
15376 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015377 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15378 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015379 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15380 msm_routing_get_port_mixer,
15381 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015382 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15383 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015384 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15385 msm_routing_get_port_mixer,
15386 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015387 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15388 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015389 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15390 msm_routing_get_port_mixer,
15391 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015392 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15393 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015394 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15395 msm_routing_get_port_mixer,
15396 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015397 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15398 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015399 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15400 msm_routing_get_port_mixer,
15401 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015402 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15403 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015404 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15405 msm_routing_get_port_mixer,
15406 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015407 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15408 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015409 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15410 msm_routing_get_port_mixer,
15411 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015412 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15413 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015414 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15415 msm_routing_get_port_mixer,
15416 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015417 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15418 MSM_BACKEND_DAI_TERT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015419 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15420 msm_routing_get_port_mixer,
15421 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015422};
15423
15424static const struct snd_kcontrol_new quat_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015425 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15426 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015427 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15428 msm_routing_get_port_mixer,
15429 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015430 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15431 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015432 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15433 msm_routing_get_port_mixer,
15434 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015435 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15436 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015437 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15438 msm_routing_get_port_mixer,
15439 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015440 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15441 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015442 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15443 msm_routing_get_port_mixer,
15444 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015445 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15446 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015447 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15448 msm_routing_get_port_mixer,
15449 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015450 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15451 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015452 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15453 msm_routing_get_port_mixer,
15454 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015455 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15456 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015457 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15458 msm_routing_get_port_mixer,
15459 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015460 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15461 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015462 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15463 msm_routing_get_port_mixer,
15464 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015465 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15466 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015467 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15468 msm_routing_get_port_mixer,
15469 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015470 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15471 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015472 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15473 msm_routing_get_port_mixer,
15474 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015475 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15476 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015477 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15478 msm_routing_get_port_mixer,
15479 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015480 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15481 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015482 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15483 msm_routing_get_port_mixer,
15484 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015485 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15486 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015487 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15488 msm_routing_get_port_mixer,
15489 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015490 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15491 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015492 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15493 msm_routing_get_port_mixer,
15494 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015495 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15496 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015497 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15498 msm_routing_get_port_mixer,
15499 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015500 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15501 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015502 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15503 msm_routing_get_port_mixer,
15504 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015505 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15506 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015507 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15508 msm_routing_get_port_mixer,
15509 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015510 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15511 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015512 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15513 msm_routing_get_port_mixer,
15514 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015515 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15516 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015517 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15518 msm_routing_get_port_mixer,
15519 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015520 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15521 MSM_BACKEND_DAI_QUAT_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015522 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15523 msm_routing_get_port_mixer,
15524 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015525};
15526
15527static const struct snd_kcontrol_new quat_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015528 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15529 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015530 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15531 msm_routing_get_port_mixer,
15532 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015533 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15534 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015535 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15536 msm_routing_get_port_mixer,
15537 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015538 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15539 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015540 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15541 msm_routing_get_port_mixer,
15542 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015543 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15544 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015545 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15546 msm_routing_get_port_mixer,
15547 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015548 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15549 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015550 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15551 msm_routing_get_port_mixer,
15552 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015553 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15554 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015555 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15556 msm_routing_get_port_mixer,
15557 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015558 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15559 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015560 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15561 msm_routing_get_port_mixer,
15562 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015563 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15564 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015565 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15566 msm_routing_get_port_mixer,
15567 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015568 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15569 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015570 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15571 msm_routing_get_port_mixer,
15572 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015573 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15574 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015575 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15576 msm_routing_get_port_mixer,
15577 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015578 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15579 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015580 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15581 msm_routing_get_port_mixer,
15582 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015583 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15584 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015585 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15586 msm_routing_get_port_mixer,
15587 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015588 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15589 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015590 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15591 msm_routing_get_port_mixer,
15592 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015593 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15594 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015595 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15596 msm_routing_get_port_mixer,
15597 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015598 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15599 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015600 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15601 msm_routing_get_port_mixer,
15602 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015603 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15604 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015605 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15606 msm_routing_get_port_mixer,
15607 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015608 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15609 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015610 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15611 msm_routing_get_port_mixer,
15612 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015613 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15614 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015615 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15616 msm_routing_get_port_mixer,
15617 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015618 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15619 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015620 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15621 msm_routing_get_port_mixer,
15622 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015623 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15624 MSM_BACKEND_DAI_QUAT_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015625 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15626 msm_routing_get_port_mixer,
15627 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015628};
15629
15630static const struct snd_kcontrol_new quat_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015631 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15632 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015633 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15634 msm_routing_get_port_mixer,
15635 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015636 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15637 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015638 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15639 msm_routing_get_port_mixer,
15640 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015641 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15642 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015643 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15644 msm_routing_get_port_mixer,
15645 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015646 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15647 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015648 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15649 msm_routing_get_port_mixer,
15650 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015651 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15652 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015653 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15654 msm_routing_get_port_mixer,
15655 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015656 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15657 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015658 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15659 msm_routing_get_port_mixer,
15660 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015661 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15662 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015663 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15664 msm_routing_get_port_mixer,
15665 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015666 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15667 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015668 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15669 msm_routing_get_port_mixer,
15670 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015671 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15672 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015673 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15674 msm_routing_get_port_mixer,
15675 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015676 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15677 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015678 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15679 msm_routing_get_port_mixer,
15680 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015681 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15682 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015683 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15684 msm_routing_get_port_mixer,
15685 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015686 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15687 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015688 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15689 msm_routing_get_port_mixer,
15690 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015691 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15692 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015693 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15694 msm_routing_get_port_mixer,
15695 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015696 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15697 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015698 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15699 msm_routing_get_port_mixer,
15700 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015701 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15702 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015703 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15704 msm_routing_get_port_mixer,
15705 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015706 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15707 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015708 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15709 msm_routing_get_port_mixer,
15710 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015711 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15712 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015713 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15714 msm_routing_get_port_mixer,
15715 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015716 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15717 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015718 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15719 msm_routing_get_port_mixer,
15720 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015721 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15722 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015723 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15724 msm_routing_get_port_mixer,
15725 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015726 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15727 MSM_BACKEND_DAI_QUAT_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053015728 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15729 msm_routing_get_port_mixer,
15730 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015731};
15732
15733static const struct snd_kcontrol_new quat_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015734 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15735 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015736 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15737 msm_routing_get_port_mixer,
15738 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015739 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15740 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015741 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15742 msm_routing_get_port_mixer,
15743 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015744 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15745 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015746 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15747 msm_routing_get_port_mixer,
15748 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015749 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15750 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015751 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15752 msm_routing_get_port_mixer,
15753 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015754 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15755 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015756 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15757 msm_routing_get_port_mixer,
15758 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015759 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15760 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015761 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15762 msm_routing_get_port_mixer,
15763 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015764 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15765 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015766 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15767 msm_routing_get_port_mixer,
15768 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015769 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15770 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015771 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15772 msm_routing_get_port_mixer,
15773 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015774 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15775 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015776 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15777 msm_routing_get_port_mixer,
15778 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015779 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15780 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015781 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15782 msm_routing_get_port_mixer,
15783 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015784 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15785 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015786 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15787 msm_routing_get_port_mixer,
15788 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015789 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15790 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015791 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15792 msm_routing_get_port_mixer,
15793 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015794 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15795 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015796 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15797 msm_routing_get_port_mixer,
15798 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015799 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15800 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015801 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15802 msm_routing_get_port_mixer,
15803 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015804 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15805 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015806 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15807 msm_routing_get_port_mixer,
15808 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015809 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15810 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053015811 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15812 msm_routing_get_port_mixer,
15813 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015814 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15815 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015816 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15817 msm_routing_get_port_mixer,
15818 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015819 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15820 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015821 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15822 msm_routing_get_port_mixer,
15823 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015824 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15825 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015826 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15827 msm_routing_get_port_mixer,
15828 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015829 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15830 MSM_BACKEND_DAI_QUAT_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053015831 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15832 msm_routing_get_port_mixer,
15833 msm_routing_put_port_mixer),
15834};
15835
15836static const struct snd_kcontrol_new quin_tdm_rx_0_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015837 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15838 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015839 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15840 msm_routing_get_port_mixer,
15841 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015842 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15843 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015844 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15845 msm_routing_get_port_mixer,
15846 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015847 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15848 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015849 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15850 msm_routing_get_port_mixer,
15851 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015852 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15853 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015854 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15855 msm_routing_get_port_mixer,
15856 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015857 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15858 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015859 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15860 msm_routing_get_port_mixer,
15861 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015862 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15863 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015864 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15865 msm_routing_get_port_mixer,
15866 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015867 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15868 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015869 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15870 msm_routing_get_port_mixer,
15871 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015872 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15873 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015874 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15875 msm_routing_get_port_mixer,
15876 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015877 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15878 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015879 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15880 msm_routing_get_port_mixer,
15881 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015882 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15883 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015884 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15885 msm_routing_get_port_mixer,
15886 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015887 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15888 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015889 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15890 msm_routing_get_port_mixer,
15891 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015892 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15893 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015894 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15895 msm_routing_get_port_mixer,
15896 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015897 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
15898 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015899 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
15900 msm_routing_get_port_mixer,
15901 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015902 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
15903 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015904 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
15905 msm_routing_get_port_mixer,
15906 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015907 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
15908 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015909 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
15910 msm_routing_get_port_mixer,
15911 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015912 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
15913 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015914 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
15915 msm_routing_get_port_mixer,
15916 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015917 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
15918 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015919 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
15920 msm_routing_get_port_mixer,
15921 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015922 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
15923 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015924 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
15925 msm_routing_get_port_mixer,
15926 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015927 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
15928 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015929 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
15930 msm_routing_get_port_mixer,
15931 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015932 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
15933 MSM_BACKEND_DAI_QUIN_TDM_RX_0,
Rohit Kumara5077932017-09-10 22:05:05 +053015934 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
15935 msm_routing_get_port_mixer,
15936 msm_routing_put_port_mixer),
15937};
15938
15939static const struct snd_kcontrol_new quin_tdm_rx_1_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080015940 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
15941 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015942 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
15943 msm_routing_get_port_mixer,
15944 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015945 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
15946 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015947 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
15948 msm_routing_get_port_mixer,
15949 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015950 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
15951 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015952 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
15953 msm_routing_get_port_mixer,
15954 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015955 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
15956 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015957 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
15958 msm_routing_get_port_mixer,
15959 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015960 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
15961 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015962 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
15963 msm_routing_get_port_mixer,
15964 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015965 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
15966 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015967 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
15968 msm_routing_get_port_mixer,
15969 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015970 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
15971 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015972 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
15973 msm_routing_get_port_mixer,
15974 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015975 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
15976 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015977 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
15978 msm_routing_get_port_mixer,
15979 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015980 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
15981 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015982 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
15983 msm_routing_get_port_mixer,
15984 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015985 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
15986 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015987 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
15988 msm_routing_get_port_mixer,
15989 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015990 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
15991 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015992 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
15993 msm_routing_get_port_mixer,
15994 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080015995 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
15996 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053015997 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
15998 msm_routing_get_port_mixer,
15999 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016000 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16001 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016002 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16003 msm_routing_get_port_mixer,
16004 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016005 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16006 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016007 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16008 msm_routing_get_port_mixer,
16009 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016010 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16011 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016012 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16013 msm_routing_get_port_mixer,
16014 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016015 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16016 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016017 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16018 msm_routing_get_port_mixer,
16019 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016020 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16021 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016022 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16023 msm_routing_get_port_mixer,
16024 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016025 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16026 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016027 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16028 msm_routing_get_port_mixer,
16029 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016030 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16031 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016032 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16033 msm_routing_get_port_mixer,
16034 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016035 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16036 MSM_BACKEND_DAI_QUIN_TDM_RX_1,
Rohit Kumara5077932017-09-10 22:05:05 +053016037 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16038 msm_routing_get_port_mixer,
16039 msm_routing_put_port_mixer),
16040};
16041
16042static const struct snd_kcontrol_new quin_tdm_rx_2_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016043 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16044 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016045 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16046 msm_routing_get_port_mixer,
16047 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016048 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16049 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016050 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16051 msm_routing_get_port_mixer,
16052 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016053 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16054 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016055 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16056 msm_routing_get_port_mixer,
16057 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016058 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16059 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016060 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16061 msm_routing_get_port_mixer,
16062 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016063 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16064 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016065 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16066 msm_routing_get_port_mixer,
16067 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016068 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16069 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016070 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16071 msm_routing_get_port_mixer,
16072 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016073 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16074 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016075 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16076 msm_routing_get_port_mixer,
16077 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016078 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16079 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016080 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16081 msm_routing_get_port_mixer,
16082 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016083 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16084 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016085 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16086 msm_routing_get_port_mixer,
16087 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016088 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16089 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016090 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16091 msm_routing_get_port_mixer,
16092 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016093 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16094 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016095 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16096 msm_routing_get_port_mixer,
16097 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016098 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16099 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016100 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16101 msm_routing_get_port_mixer,
16102 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016103 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16104 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016105 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16106 msm_routing_get_port_mixer,
16107 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016108 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16109 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016110 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16111 msm_routing_get_port_mixer,
16112 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016113 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16114 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016115 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16116 msm_routing_get_port_mixer,
16117 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016118 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16119 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016120 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16121 msm_routing_get_port_mixer,
16122 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016123 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16124 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016125 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16126 msm_routing_get_port_mixer,
16127 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016128 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16129 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016130 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16131 msm_routing_get_port_mixer,
16132 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016133 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16134 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016135 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16136 msm_routing_get_port_mixer,
16137 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016138 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16139 MSM_BACKEND_DAI_QUIN_TDM_RX_2,
Rohit Kumara5077932017-09-10 22:05:05 +053016140 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16141 msm_routing_get_port_mixer,
16142 msm_routing_put_port_mixer),
16143};
16144
16145static const struct snd_kcontrol_new quin_tdm_rx_3_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016146 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16147 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016148 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0,
16149 msm_routing_get_port_mixer,
16150 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016151 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16152 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016153 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0,
16154 msm_routing_get_port_mixer,
16155 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016156 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16157 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016158 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0,
16159 msm_routing_get_port_mixer,
16160 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016161 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16162 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016163 MSM_BACKEND_DAI_INT_FM_TX, 1, 0,
16164 msm_routing_get_port_mixer,
16165 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016166 SOC_DOUBLE_EXT("INTERNAL_BT_SCO_TX", SND_SOC_NOPM,
16167 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016168 MSM_BACKEND_DAI_INT_BT_SCO_TX, 1, 0,
16169 msm_routing_get_port_mixer,
16170 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016171 SOC_DOUBLE_EXT("AFE_PCM_TX", SND_SOC_NOPM,
16172 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016173 MSM_BACKEND_DAI_AFE_PCM_TX, 1, 0,
16174 msm_routing_get_port_mixer,
16175 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016176 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16177 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016178 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0,
16179 msm_routing_get_port_mixer,
16180 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016181 SOC_DOUBLE_EXT("SEC_AUX_PCM_UL_TX", SND_SOC_NOPM,
16182 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016183 MSM_BACKEND_DAI_SEC_AUXPCM_TX, 1, 0,
16184 msm_routing_get_port_mixer,
16185 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016186 SOC_DOUBLE_EXT("TERT_TDM_TX_0", SND_SOC_NOPM,
16187 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016188 MSM_BACKEND_DAI_TERT_TDM_TX_0, 1, 0,
16189 msm_routing_get_port_mixer,
16190 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016191 SOC_DOUBLE_EXT("TERT_TDM_TX_1", SND_SOC_NOPM,
16192 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016193 MSM_BACKEND_DAI_TERT_TDM_TX_1, 1, 0,
16194 msm_routing_get_port_mixer,
16195 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016196 SOC_DOUBLE_EXT("TERT_TDM_TX_2", SND_SOC_NOPM,
16197 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016198 MSM_BACKEND_DAI_TERT_TDM_TX_2, 1, 0,
16199 msm_routing_get_port_mixer,
16200 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016201 SOC_DOUBLE_EXT("TERT_TDM_TX_3", SND_SOC_NOPM,
16202 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016203 MSM_BACKEND_DAI_TERT_TDM_TX_3, 1, 0,
16204 msm_routing_get_port_mixer,
16205 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016206 SOC_DOUBLE_EXT("QUAT_TDM_TX_0", SND_SOC_NOPM,
16207 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016208 MSM_BACKEND_DAI_QUAT_TDM_TX_0, 1, 0,
16209 msm_routing_get_port_mixer,
16210 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016211 SOC_DOUBLE_EXT("QUAT_TDM_TX_1", SND_SOC_NOPM,
16212 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016213 MSM_BACKEND_DAI_QUAT_TDM_TX_1, 1, 0,
16214 msm_routing_get_port_mixer,
16215 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016216 SOC_DOUBLE_EXT("QUAT_TDM_TX_2", SND_SOC_NOPM,
16217 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016218 MSM_BACKEND_DAI_QUAT_TDM_TX_2, 1, 0,
16219 msm_routing_get_port_mixer,
16220 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016221 SOC_DOUBLE_EXT("QUAT_TDM_TX_3", SND_SOC_NOPM,
16222 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016223 MSM_BACKEND_DAI_QUAT_TDM_TX_3, 1, 0,
16224 msm_routing_get_port_mixer,
16225 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016226 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16227 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016228 MSM_BACKEND_DAI_QUIN_TDM_TX_0, 1, 0,
16229 msm_routing_get_port_mixer,
16230 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016231 SOC_DOUBLE_EXT("QUIN_TDM_TX_1", SND_SOC_NOPM,
16232 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016233 MSM_BACKEND_DAI_QUIN_TDM_TX_1, 1, 0,
16234 msm_routing_get_port_mixer,
16235 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016236 SOC_DOUBLE_EXT("QUIN_TDM_TX_2", SND_SOC_NOPM,
16237 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016238 MSM_BACKEND_DAI_QUIN_TDM_TX_2, 1, 0,
16239 msm_routing_get_port_mixer,
16240 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016241 SOC_DOUBLE_EXT("QUIN_TDM_TX_3", SND_SOC_NOPM,
16242 MSM_BACKEND_DAI_QUIN_TDM_RX_3,
Rohit Kumara5077932017-09-10 22:05:05 +053016243 MSM_BACKEND_DAI_QUIN_TDM_TX_3, 1, 0,
16244 msm_routing_get_port_mixer,
16245 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016246};
16247
16248static const struct snd_kcontrol_new tert_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016249 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16250 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016251 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16252 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016253 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16254 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016255 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16256 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016257 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16258 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016259 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16260 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016261 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16262 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016263 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16264 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016265 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16266 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016267 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16268 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016269 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16270 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016271 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16272 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016273 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16274 MSM_BACKEND_DAI_TERTIARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016275 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16276 msm_routing_put_port_mixer),
16277};
16278
16279static const struct snd_kcontrol_new sec_mi2s_rx_port_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016280 SOC_DOUBLE_EXT("PRI_MI2S_TX", SND_SOC_NOPM,
16281 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016282 MSM_BACKEND_DAI_PRI_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16283 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016284 SOC_DOUBLE_EXT("SEC_MI2S_TX", SND_SOC_NOPM,
16285 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016286 MSM_BACKEND_DAI_SECONDARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16287 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016288 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16289 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016290 MSM_BACKEND_DAI_TERTIARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16291 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016292 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16293 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016294 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16295 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016296 SOC_DOUBLE_EXT("QUIN_MI2S_TX", SND_SOC_NOPM,
16297 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Rohit Kumara5077932017-09-10 22:05:05 +053016298 MSM_BACKEND_DAI_QUINARY_MI2S_TX, 1, 0, msm_routing_get_port_mixer,
16299 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016300 SOC_DOUBLE_EXT("SLIM_0_TX", SND_SOC_NOPM,
16301 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016302 MSM_BACKEND_DAI_SLIMBUS_0_TX, 1, 0, msm_routing_get_port_mixer,
16303 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016304 SOC_DOUBLE_EXT("INTERNAL_FM_TX", SND_SOC_NOPM,
16305 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016306 MSM_BACKEND_DAI_INT_FM_TX, 1, 0, msm_routing_get_port_mixer,
16307 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016308 SOC_DOUBLE_EXT("SLIM_8_TX", SND_SOC_NOPM,
16309 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016310 MSM_BACKEND_DAI_SLIMBUS_8_TX, 1, 0, msm_routing_get_port_mixer,
16311 msm_routing_put_port_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016312 SOC_DOUBLE_EXT("AUX_PCM_UL_TX", SND_SOC_NOPM,
16313 MSM_BACKEND_DAI_SECONDARY_MI2S_RX,
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080016314 MSM_BACKEND_DAI_AUXPCM_TX, 1, 0, msm_routing_get_port_mixer,
16315 msm_routing_put_port_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016316};
16317
16318static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016319 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16320 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016321 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16322 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016323 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16324 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016325 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16326 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016327 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16328 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016329 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16330 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016331 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16332 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016333 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16334 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016335 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16336 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016337 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16338 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016339 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16340 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016341 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16342 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016343 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16344 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016345 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16346 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016347 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16348 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016349 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16350 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016351 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16352 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16353 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16354 msm_routing_put_listen_mixer),
16355 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16356 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16357 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16358 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016359 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16360 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16361 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16362 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016363 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16364 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16365 MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
16366 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016367};
16368
16369static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016370 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16371 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016372 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16373 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016374 SOC_DOUBLE_EXT("SLIMBUS_1_TX",
16375 SND_SOC_NOPM,
16376 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016377 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16378 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016379 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16380 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016381 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16382 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016383 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16384 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016385 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16386 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016387 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16388 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016389 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16390 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016391 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16392 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016393 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16394 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016395 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16396 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016397 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16398 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016399 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16400 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016401 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16402 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016403 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16404 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16405 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16406 msm_routing_put_listen_mixer),
16407 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16408 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16409 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16410 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016411 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16412 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16413 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16414 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016415 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16416 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16417 MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
16418 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016419};
16420
16421static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016422 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16423 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016424 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16425 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016426 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16427 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016428 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16429 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016430 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16431 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016432 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16433 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016434 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16435 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016436 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16437 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016438 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16439 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016440 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16441 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016442 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16443 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016444 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16445 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016446 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16447 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016448 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16449 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016450 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16451 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016452 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16453 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016454 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16455 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16456 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16457 msm_routing_put_listen_mixer),
16458 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16459 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16460 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16461 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016462 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16463 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16464 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16465 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016466 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16467 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16468 MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
16469 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016470};
16471
16472static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016473 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16474 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016475 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16476 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016477 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16478 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016479 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16480 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016481 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16482 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016483 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16484 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016485 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16486 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016487 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16488 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016489 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16490 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016491 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16492 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016493 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16494 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016495 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16496 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016497 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16498 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016499 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16500 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016501 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16502 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016503 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16504 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016505 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16506 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16507 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16508 msm_routing_put_listen_mixer),
16509 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16510 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16511 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16512 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016513 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16514 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16515 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16516 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016517 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16518 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16519 MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
16520 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016521};
16522
16523static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016524 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16525 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016526 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16527 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016528 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16529 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016530 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16531 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016532 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16533 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016534 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16535 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016536 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16537 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016538 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16539 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016540 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16541 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016542 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16543 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016544 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16545 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016546 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16547 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016548 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16549 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016550 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16551 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016552 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16553 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016554 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16555 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016556 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16557 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16558 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16559 msm_routing_put_listen_mixer),
16560 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16561 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16562 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16563 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016564 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16565 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16566 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16567 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016568 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16569 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16570 MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
16571 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016572};
16573
16574static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016575 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16576 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016577 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16578 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016579 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16580 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016581 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16582 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016583 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16584 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016585 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16586 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016587 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16588 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016589 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16590 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016591 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16592 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016593 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16594 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016595 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16596 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016597 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16598 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016599 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16600 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016601 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16602 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016603 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16604 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016605 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16606 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016607 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16608 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16609 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16610 msm_routing_put_listen_mixer),
16611 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16612 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16613 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16614 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016615 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16616 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16617 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16618 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016619 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16620 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16621 MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
16622 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016623};
16624
16625static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016626 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16627 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016628 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16629 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016630 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16631 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016632 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16633 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016634 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16635 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016636 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16637 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016638 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16639 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016640 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16641 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016642 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16643 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016644 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16645 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016646 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16647 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016648 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16649 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016650 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16651 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016652 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16653 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016654 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16655 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016656 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16657 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016658 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16659 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16660 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16661 msm_routing_put_listen_mixer),
16662 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16663 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16664 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16665 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016666 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16667 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16668 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16669 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016670 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16671 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16672 MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
16673 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016674};
16675
16676static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
Meng Wang05d5e9a2018-03-28 16:45:03 +080016677 SOC_DOUBLE_EXT("SLIMBUS_0_TX", SND_SOC_NOPM,
16678 MSM_BACKEND_DAI_SLIMBUS_0_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016679 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16680 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016681 SOC_DOUBLE_EXT("SLIMBUS_1_TX", SND_SOC_NOPM,
16682 MSM_BACKEND_DAI_SLIMBUS_1_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016683 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16684 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016685 SOC_DOUBLE_EXT("SLIMBUS_3_TX", SND_SOC_NOPM,
16686 MSM_BACKEND_DAI_SLIMBUS_3_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016687 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16688 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016689 SOC_DOUBLE_EXT("SLIMBUS_4_TX", SND_SOC_NOPM,
16690 MSM_BACKEND_DAI_SLIMBUS_4_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016691 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16692 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016693 SOC_DOUBLE_EXT("SLIMBUS_5_TX", SND_SOC_NOPM,
16694 MSM_BACKEND_DAI_SLIMBUS_5_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016695 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16696 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016697 SOC_DOUBLE_EXT("TERT_MI2S_TX", SND_SOC_NOPM,
16698 MSM_BACKEND_DAI_TERTIARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016699 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16700 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016701 SOC_DOUBLE_EXT("QUAT_MI2S_TX", SND_SOC_NOPM,
16702 MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016703 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16704 msm_routing_put_listen_mixer),
Meng Wang05d5e9a2018-03-28 16:45:03 +080016705 SOC_DOUBLE_EXT("INT3_MI2S_TX", SND_SOC_NOPM,
16706 MSM_BACKEND_DAI_INT3_MI2S_TX,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016707 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16708 msm_routing_put_listen_mixer),
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053016709 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_0", SND_SOC_NOPM,
16710 MSM_BACKEND_DAI_VA_CDC_DMA_TX_0,
16711 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16712 msm_routing_put_listen_mixer),
16713 SOC_DOUBLE_EXT("VA_CDC_DMA_TX_1", SND_SOC_NOPM,
16714 MSM_BACKEND_DAI_VA_CDC_DMA_TX_1,
16715 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16716 msm_routing_put_listen_mixer),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016717 SOC_DOUBLE_EXT("TX_CDC_DMA_TX_3", SND_SOC_NOPM,
16718 MSM_BACKEND_DAI_TX_CDC_DMA_TX_3,
16719 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16720 msm_routing_put_listen_mixer),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016721 SOC_DOUBLE_EXT("QUIN_TDM_TX_0", SND_SOC_NOPM,
16722 MSM_BACKEND_DAI_QUIN_TDM_TX_0,
16723 MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
16724 msm_routing_put_listen_mixer),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016725};
16726
16727static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
16728 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16729 0, 1, 0, msm_routing_get_switch_mixer,
16730 msm_routing_put_switch_mixer);
16731
16732static const struct snd_kcontrol_new slim1_fm_switch_mixer_controls =
16733 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16734 0, 1, 0, msm_routing_get_switch_mixer,
16735 msm_routing_put_switch_mixer);
16736
16737static const struct snd_kcontrol_new slim3_fm_switch_mixer_controls =
16738 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16739 0, 1, 0, msm_routing_get_switch_mixer,
16740 msm_routing_put_switch_mixer);
16741
16742static const struct snd_kcontrol_new slim4_fm_switch_mixer_controls =
16743 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16744 0, 1, 0, msm_routing_get_switch_mixer,
16745 msm_routing_put_switch_mixer);
16746
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053016747static const struct snd_kcontrol_new cdc_dma_wsa_switch_mixer_controls =
16748 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16749 0, 1, 0, msm_routing_get_switch_mixer,
16750 msm_routing_put_switch_mixer);
16751
16752static const struct snd_kcontrol_new cdc_dma_rx_switch_mixer_controls =
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053016753 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16754 0, 1, 0, msm_routing_get_switch_mixer,
16755 msm_routing_put_switch_mixer);
16756
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016757static const struct snd_kcontrol_new slim6_fm_switch_mixer_controls =
16758 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16759 0, 1, 0, msm_routing_get_switch_mixer,
16760 msm_routing_put_switch_mixer);
16761
16762static const struct snd_kcontrol_new pcm_rx_switch_mixer_controls =
16763 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16764 0, 1, 0, msm_routing_get_fm_pcmrx_switch_mixer,
16765 msm_routing_put_fm_pcmrx_switch_mixer);
16766
16767static const struct snd_kcontrol_new int0_mi2s_rx_switch_mixer_controls =
16768 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16769 0, 1, 0, msm_routing_get_int0_mi2s_switch_mixer,
16770 msm_routing_put_int0_mi2s_switch_mixer);
16771
16772static const struct snd_kcontrol_new int4_mi2s_rx_switch_mixer_controls =
16773 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16774 0, 1, 0, msm_routing_get_int4_mi2s_switch_mixer,
16775 msm_routing_put_int4_mi2s_switch_mixer);
16776
16777static const struct snd_kcontrol_new pri_mi2s_rx_switch_mixer_controls =
16778 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16779 0, 1, 0, msm_routing_get_pri_mi2s_switch_mixer,
16780 msm_routing_put_pri_mi2s_switch_mixer);
16781
16782static const struct snd_kcontrol_new sec_mi2s_rx_switch_mixer_controls =
16783 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16784 0, 1, 0, msm_routing_get_sec_mi2s_switch_mixer,
16785 msm_routing_put_sec_mi2s_switch_mixer);
16786
16787static const struct snd_kcontrol_new tert_mi2s_rx_switch_mixer_controls =
16788 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16789 0, 1, 0, msm_routing_get_tert_mi2s_switch_mixer,
16790 msm_routing_put_tert_mi2s_switch_mixer);
16791
16792static const struct snd_kcontrol_new quat_mi2s_rx_switch_mixer_controls =
16793 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16794 0, 1, 0, msm_routing_get_quat_mi2s_switch_mixer,
16795 msm_routing_put_quat_mi2s_switch_mixer);
16796
Rohit Kumara5077932017-09-10 22:05:05 +053016797static const struct snd_kcontrol_new quin_mi2s_rx_switch_mixer_controls =
16798 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16799 0, 1, 0, msm_routing_get_quin_mi2s_switch_mixer,
16800 msm_routing_put_quin_mi2s_switch_mixer);
16801
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016802static const struct snd_kcontrol_new hfp_pri_aux_switch_mixer_controls =
16803 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16804 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16805 msm_routing_put_hfp_switch_mixer);
16806
16807static const struct snd_kcontrol_new hfp_aux_switch_mixer_controls =
16808 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16809 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16810 msm_routing_put_hfp_switch_mixer);
16811
16812static const struct snd_kcontrol_new hfp_int_switch_mixer_controls =
16813 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16814 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16815 msm_routing_put_hfp_switch_mixer);
16816
16817static const struct snd_kcontrol_new hfp_slim7_switch_mixer_controls =
16818 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16819 0, 1, 0, msm_routing_get_hfp_switch_mixer,
16820 msm_routing_put_hfp_switch_mixer);
16821
16822static const struct snd_kcontrol_new usb_switch_mixer_controls =
16823 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16824 0, 1, 0, msm_routing_get_usb_switch_mixer,
16825 msm_routing_put_usb_switch_mixer);
16826
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080016827static const struct snd_kcontrol_new a2dp_slim7_switch_mixer_controls =
16828 SOC_SINGLE_EXT("Switch", SND_SOC_NOPM,
16829 0, 1, 0, msm_routing_a2dp_switch_mixer_get,
16830 msm_routing_a2dp_switch_mixer_put);
16831
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016832static const struct soc_enum lsm_port_enum =
16833 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_port_text), lsm_port_text);
16834
16835static const char * const lsm_func_text[] = {
16836 "None", "AUDIO", "BEACON", "ULTRASOUND", "SWAUDIO",
16837};
16838static const struct soc_enum lsm_func_enum =
16839 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(lsm_func_text), lsm_func_text);
16840
16841static const struct snd_kcontrol_new lsm_controls[] = {
16842 /* kcontrol of lsm_function */
16843 SOC_ENUM_EXT(SLIMBUS_0_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16844 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16845 SOC_ENUM_EXT(SLIMBUS_1_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16846 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16847 SOC_ENUM_EXT(SLIMBUS_2_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16848 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16849 SOC_ENUM_EXT(SLIMBUS_3_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16850 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16851 SOC_ENUM_EXT(SLIMBUS_4_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16852 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16853 SOC_ENUM_EXT(SLIMBUS_5_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16854 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16855 SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16856 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16857 SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16858 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
16859 SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16860 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Aditya Bavanarie9454c62018-08-23 23:45:20 +053016861 SOC_ENUM_EXT(TX_CDC_DMA_TX_3_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16862 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053016863 SOC_ENUM_EXT(QUIN_TDM_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
16864 msm_routing_lsm_func_get, msm_routing_lsm_func_put),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016865 /* kcontrol of lsm_port */
16866 SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
16867 msm_routing_lsm_port_get,
16868 msm_routing_lsm_port_put),
16869 SOC_ENUM_EXT("LSM2 Port", lsm_port_enum,
16870 msm_routing_lsm_port_get,
16871 msm_routing_lsm_port_put),
16872 SOC_ENUM_EXT("LSM3 Port", lsm_port_enum,
16873 msm_routing_lsm_port_get,
16874 msm_routing_lsm_port_put),
16875 SOC_ENUM_EXT("LSM4 Port", lsm_port_enum,
16876 msm_routing_lsm_port_get,
16877 msm_routing_lsm_port_put),
16878 SOC_ENUM_EXT("LSM5 Port", lsm_port_enum,
16879 msm_routing_lsm_port_get,
16880 msm_routing_lsm_port_put),
16881 SOC_ENUM_EXT("LSM6 Port", lsm_port_enum,
16882 msm_routing_lsm_port_get,
16883 msm_routing_lsm_port_put),
16884 SOC_ENUM_EXT("LSM7 Port", lsm_port_enum,
16885 msm_routing_lsm_port_get,
16886 msm_routing_lsm_port_put),
16887 SOC_ENUM_EXT("LSM8 Port", lsm_port_enum,
16888 msm_routing_lsm_port_get,
16889 msm_routing_lsm_port_put),
16890};
16891
16892static const char * const aanc_slim_0_rx_text[] = {
16893 "ZERO", "SLIMBUS_0_TX", "SLIMBUS_1_TX", "SLIMBUS_2_TX", "SLIMBUS_3_TX",
16894 "SLIMBUS_4_TX", "SLIMBUS_5_TX", "SLIMBUS_6_TX"
16895};
16896
16897static const struct soc_enum aanc_slim_0_rx_enum =
16898 SOC_ENUM_SINGLE_EXT(ARRAY_SIZE(aanc_slim_0_rx_text),
16899 aanc_slim_0_rx_text);
16900
16901static const struct snd_kcontrol_new aanc_slim_0_rx_mux[] = {
16902 SOC_ENUM_EXT("AANC_SLIM_0_RX MUX", aanc_slim_0_rx_enum,
16903 msm_routing_slim_0_rx_aanc_mux_get,
16904 msm_routing_slim_0_rx_aanc_mux_put)
16905};
16906
Sudheer Papothic07b37a2018-05-04 05:56:47 +053016907static int msm_routing_aanc_noise_level_get(struct snd_kcontrol *kcontrol,
16908 struct snd_ctl_elem_value *ucontrol)
16909{
16910 ucontrol->value.integer.value[0] = aanc_level;
16911
16912 return 0;
16913}
16914
16915static int msm_routing_aanc_noise_level_put(struct snd_kcontrol *kcontrol,
16916 struct snd_ctl_elem_value *ucontrol)
16917{
16918 int ret = 0;
16919
16920 mutex_lock(&routing_lock);
16921 aanc_level = ucontrol->value.integer.value[0];
16922 pr_debug("%s: value: %ld\n",
16923 __func__, ucontrol->value.integer.value[0]);
16924 ret = afe_set_aanc_noise_level(aanc_level);
16925 mutex_unlock(&routing_lock);
16926
16927 return ret;
16928}
16929
16930static const struct snd_kcontrol_new aanc_noise_level[] = {
16931 SOC_SINGLE_EXT("AANC Noise Level", SND_SOC_NOPM, 0, 255,
16932 0, msm_routing_aanc_noise_level_get, msm_routing_aanc_noise_level_put)
16933};
16934
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053016935static int msm_routing_get_stereo_to_custom_stereo_control(
16936 struct snd_kcontrol *kcontrol,
16937 struct snd_ctl_elem_value *ucontrol)
16938{
16939 ucontrol->value.integer.value[0] = is_custom_stereo_on;
16940 return 0;
16941}
16942
16943static int msm_routing_put_stereo_to_custom_stereo_control(
16944 struct snd_kcontrol *kcontrol,
16945 struct snd_ctl_elem_value *ucontrol)
16946{
16947 int flag = 0, i = 0, rc = 0, idx = 0;
16948 int be_index = 0, port_id, topo_id;
16949 unsigned int session_id = 0;
16950 uint16_t op_FL_ip_FL_weight = 0;
16951 uint16_t op_FL_ip_FR_weight = 0;
16952 uint16_t op_FR_ip_FL_weight = 0;
16953 uint16_t op_FR_ip_FR_weight = 0;
16954
16955 flag = ucontrol->value.integer.value[0];
16956 pr_debug("%s E flag %d\n", __func__, flag);
16957
16958 if ((is_custom_stereo_on && flag) || (!is_custom_stereo_on && !flag)) {
16959 pr_err("%s: is_custom_stereo_on %d, flag %d\n",
16960 __func__, is_custom_stereo_on, flag);
16961 return 0;
16962 }
16963 is_custom_stereo_on = flag ? true : false;
16964 pr_debug("%s:is_custom_stereo_on %d\n", __func__, is_custom_stereo_on);
16965 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
16966 port_id = msm_bedais[be_index].port_id;
16967 if (!msm_bedais[be_index].active)
16968 continue;
16969 if ((port_id != SLIMBUS_0_RX) &&
16970 (port_id != RT_PROXY_PORT_001_RX) &&
16971 (port_id != AFE_PORT_ID_PRIMARY_MI2S_RX) &&
16972 (port_id != AFE_PORT_ID_INT4_MI2S_RX))
16973 continue;
16974
16975 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
16976 MSM_FRONTEND_DAI_MM_SIZE) {
16977 if (fe_dai_map[i][SESSION_TYPE_RX].perf_mode !=
16978 LEGACY_PCM_MODE)
16979 goto skip_send_custom_stereo;
16980 session_id =
16981 fe_dai_map[i][SESSION_TYPE_RX].strm_id;
16982 if (is_custom_stereo_on) {
16983 op_FL_ip_FL_weight =
16984 Q14_GAIN_ZERO_POINT_FIVE;
16985 op_FL_ip_FR_weight =
16986 Q14_GAIN_ZERO_POINT_FIVE;
16987 op_FR_ip_FL_weight =
16988 Q14_GAIN_ZERO_POINT_FIVE;
16989 op_FR_ip_FR_weight =
16990 Q14_GAIN_ZERO_POINT_FIVE;
16991 } else {
16992 op_FL_ip_FL_weight = Q14_GAIN_UNITY;
16993 op_FL_ip_FR_weight = 0;
16994 op_FR_ip_FL_weight = 0;
16995 op_FR_ip_FR_weight = Q14_GAIN_UNITY;
16996 }
16997 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
16998 unsigned long copp =
16999 session_copp_map[i]
17000 [SESSION_TYPE_RX][be_index];
17001 if (!test_bit(idx, &copp))
17002 goto skip_send_custom_stereo;
17003 topo_id = adm_get_topology_for_port_copp_idx(
17004 msm_bedais[be_index].port_id, idx);
17005 if (topo_id < 0)
17006 pr_debug("%s:Err:custom stereo topo %d",
17007 __func__, topo_id);
17008 pr_debug("idx %d\n", idx);
17009 if (topo_id == DS2_ADM_COPP_TOPOLOGY_ID)
17010 rc = msm_ds2_dap_set_custom_stereo_onoff
17011 (msm_bedais[be_index].port_id,
17012 idx, is_custom_stereo_on);
17013 else if (topo_id == DOLBY_ADM_COPP_TOPOLOGY_ID)
17014 rc = dolby_dap_set_custom_stereo_onoff(
17015 msm_bedais[be_index].port_id,
17016 idx, is_custom_stereo_on);
17017 else
17018 rc = msm_qti_pp_send_stereo_to_custom_stereo_cmd
17019 (msm_bedais[be_index].port_id,
17020 idx, session_id,
17021 op_FL_ip_FL_weight,
17022 op_FL_ip_FR_weight,
17023 op_FR_ip_FL_weight,
17024 op_FR_ip_FR_weight);
17025 if (rc < 0)
17026skip_send_custom_stereo:
17027 pr_err("%s: err setting custom stereo\n",
17028 __func__);
17029 }
17030
17031 }
17032 }
17033 return 0;
17034}
17035
17036static const struct snd_kcontrol_new stereo_to_custom_stereo_controls[] = {
17037 SOC_SINGLE_EXT("Set Custom Stereo OnOff", SND_SOC_NOPM, 0,
17038 1, 0, msm_routing_get_stereo_to_custom_stereo_control,
17039 msm_routing_put_stereo_to_custom_stereo_control),
17040};
17041
17042static int msm_routing_get_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17043 struct snd_ctl_elem_value *ucontrol)
17044{
17045 return 0;
17046}
17047
17048static int msm_routing_put_app_type_cfg_control(struct snd_kcontrol *kcontrol,
17049 struct snd_ctl_elem_value *ucontrol)
17050{
17051 int i = 0, j;
17052 int num_app_types = ucontrol->value.integer.value[i++];
17053
17054 pr_debug("%s\n", __func__);
17055
17056 memset(app_type_cfg, 0, MAX_APP_TYPES*
17057 sizeof(struct msm_pcm_routing_app_type_data));
17058 if (num_app_types > MAX_APP_TYPES) {
17059 pr_err("%s: number of app types exceed the max supported\n",
17060 __func__);
17061 return -EINVAL;
17062 }
17063 for (j = 0; j < num_app_types; j++) {
17064 app_type_cfg[j].app_type =
17065 ucontrol->value.integer.value[i++];
17066 app_type_cfg[j].sample_rate =
17067 ucontrol->value.integer.value[i++];
17068 app_type_cfg[j].bit_width =
17069 ucontrol->value.integer.value[i++];
17070 }
17071
17072 return 0;
17073}
17074
17075static int msm_routing_put_app_type_gain_control(struct snd_kcontrol *kcontrol,
17076 struct snd_ctl_elem_value *ucontrol)
17077{
17078 int j, fe_id, be_id, port_type;
17079 int ret = 0;
17080 unsigned long copp;
17081 struct msm_pcm_routing_bdai_data *bedai;
17082 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17083 SESSION_TYPE_RX;
17084 int app_type = ucontrol->value.integer.value[1];
17085 int gain = (ucontrol->value.integer.value[2] +
17086 ucontrol->value.integer.value[3])/2;
17087
17088 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17089 MSM_AFE_PORT_TYPE_TX;
17090
17091 mutex_lock(&routing_lock);
17092 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17093 if (is_be_dai_extproc(be_id))
17094 continue;
17095
17096 bedai = &msm_bedais[be_id];
17097 if (afe_get_port_type(bedai->port_id) != port_type)
17098 continue;
17099
17100 if (!bedai->active)
17101 continue;
17102
17103 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17104 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17105 continue;
17106
17107 if (app_type !=
17108 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17109 continue;
17110
17111 copp = session_copp_map[fe_id][dir][be_id];
17112 for (j = 0; j < MAX_COPPS_PER_PORT; j++) {
17113 if (!test_bit(j, &copp))
17114 continue;
17115 ret |= adm_set_volume(bedai->port_id, j, gain);
17116 }
17117 }
17118 }
17119 mutex_unlock(&routing_lock);
17120 return ret ? -EINVAL : 0;
17121}
17122
17123static const struct snd_kcontrol_new app_type_cfg_controls[] = {
17124 SOC_SINGLE_MULTI_EXT("App Type Config", SND_SOC_NOPM, 0,
17125 0xFFFFFFFF, 0, 128, msm_routing_get_app_type_cfg_control,
17126 msm_routing_put_app_type_cfg_control),
17127 SOC_SINGLE_MULTI_EXT("App Type Gain", SND_SOC_NOPM, 0,
17128 0x2000, 0, 4, NULL, msm_routing_put_app_type_gain_control)
17129};
17130
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017131static int msm_routing_put_module_cfg_control(struct snd_kcontrol *kcontrol,
17132 struct snd_ctl_elem_value *ucontrol)
17133{
17134 int copp_idx, fe_id, be_id, port_type;
17135 int ret = 0;
17136 unsigned long copp;
17137 struct msm_pcm_routing_bdai_data *bedai;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017138 u8 *packed_params = NULL;
17139 struct param_hdr_v3 param_hdr;
17140 u32 packed_param_size = (sizeof(struct param_hdr_v3) +
17141 sizeof(uint32_t));
17142
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017143 int dir = ucontrol->value.integer.value[0] ? SESSION_TYPE_TX :
17144 SESSION_TYPE_RX;
17145 int app_type = ucontrol->value.integer.value[1];
17146 int module_id = ucontrol->value.integer.value[2];
17147 int instance_id = ucontrol->value.integer.value[3];
17148 int param_id = ucontrol->value.integer.value[4];
17149 int param_value = ucontrol->value.integer.value[5];
17150
17151 port_type = (dir == SESSION_TYPE_RX) ? MSM_AFE_PORT_TYPE_RX :
17152 MSM_AFE_PORT_TYPE_TX;
17153 pr_debug("%s app_type:%d mod_id:%d instance_id:%d param_id:%d value:%d\n",
17154 __func__, app_type, module_id,
17155 instance_id, param_id, param_value);
17156
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017157 packed_params = kzalloc(packed_param_size, GFP_KERNEL);
17158 if (!packed_params)
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017159 return -ENOMEM;
17160
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017161 memset(&param_hdr, 0, sizeof(param_hdr));
17162 param_hdr.module_id = module_id;
17163 param_hdr.instance_id = instance_id;
17164 param_hdr.param_id = param_id;
17165 param_hdr.param_size = sizeof(uint32_t);
17166
17167 packed_param_size = 0;
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017168
17169 mutex_lock(&routing_lock);
17170 for (be_id = 0; be_id < MSM_BACKEND_DAI_MAX; be_id++) {
17171 if (is_be_dai_extproc(be_id))
17172 continue;
17173
17174 bedai = &msm_bedais[be_id];
17175 if (afe_get_port_type(bedai->port_id) != port_type)
17176 continue;
17177
17178 if (!bedai->active)
17179 continue;
17180
17181 for (fe_id = 0; fe_id < MSM_FRONTEND_DAI_MAX; fe_id++) {
17182 if (!test_bit(fe_id, &bedai->fe_sessions[0]))
17183 continue;
17184
17185 if (app_type !=
17186 fe_dai_app_type_cfg[fe_id][dir][be_id].app_type)
17187 continue;
17188
17189 copp = session_copp_map[fe_id][dir][be_id];
17190 for (copp_idx = 0; copp_idx < MAX_COPPS_PER_PORT;
17191 copp_idx++) {
17192 if (!test_bit(copp_idx, &copp))
17193 continue;
17194
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017195 ret = q6common_pack_pp_params(packed_params,
17196 &param_hdr,
17197 (u8 *) &param_value,
17198 &packed_param_size);
17199 if (ret) {
17200 pr_err("%s: Failed to pack params, error %d\n",
17201 __func__, ret);
17202 goto done;
17203 }
17204
17205 ret = adm_set_pp_params(bedai->port_id,
17206 copp_idx, NULL,
17207 packed_params,
17208 packed_param_size);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017209 if (ret) {
17210 pr_err("%s: Setting param failed with err=%d\n",
17211 __func__, ret);
17212 ret = -EINVAL;
17213 goto done;
17214 }
17215 }
17216 }
17217 }
17218done:
17219 mutex_unlock(&routing_lock);
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017220 kfree(packed_params);
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070017221 return ret;
17222}
17223
17224static const struct snd_kcontrol_new module_cfg_controls[] = {
17225 SOC_SINGLE_MULTI_EXT("Audio Effect", SND_SOC_NOPM, 0,
17226 0x2000, 0, 6, NULL, msm_routing_put_module_cfg_control)
17227};
17228
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017229static int msm_routing_get_lsm_app_type_cfg_control(
17230 struct snd_kcontrol *kcontrol,
17231 struct snd_ctl_elem_value *ucontrol)
17232{
17233 return 0;
17234}
17235
17236static int msm_routing_put_lsm_app_type_cfg_control(
17237 struct snd_kcontrol *kcontrol,
17238 struct snd_ctl_elem_value *ucontrol)
17239{
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017240 int shift = ((struct soc_multi_mixer_control *)
17241 kcontrol->private_value)->shift;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017242 int i = 0, j;
17243 int num_app_types = ucontrol->value.integer.value[i++];
17244
17245 memset(lsm_app_type_cfg, 0, MAX_APP_TYPES*
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017246 sizeof(struct msm_pcm_routing_app_type_data));
17247
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017248 if (num_app_types > MAX_APP_TYPES) {
17249 pr_err("%s: number of app types exceed the max supported\n",
17250 __func__);
17251 return -EINVAL;
17252 }
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017253
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017254 for (j = 0; j < num_app_types; j++) {
17255 lsm_app_type_cfg[j].app_type =
17256 ucontrol->value.integer.value[i++];
17257 lsm_app_type_cfg[j].sample_rate =
17258 ucontrol->value.integer.value[i++];
17259 lsm_app_type_cfg[j].bit_width =
17260 ucontrol->value.integer.value[i++];
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017261 /* Shift of 1 indicates this is V2 mixer control */
17262 if (shift == 1)
17263 lsm_app_type_cfg[j].num_out_channels =
17264 ucontrol->value.integer.value[i++];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017265 }
17266
17267 return 0;
17268}
17269
17270static const struct snd_kcontrol_new lsm_app_type_cfg_controls[] = {
17271 SOC_SINGLE_MULTI_EXT("Listen App Type Config", SND_SOC_NOPM, 0,
17272 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17273 msm_routing_put_lsm_app_type_cfg_control),
Bhalchandra Gajare3693b652018-05-12 18:52:56 -070017274 SOC_SINGLE_MULTI_EXT("Listen App Type Config V2", SND_SOC_NOPM, 1,
17275 0xFFFFFFFF, 0, 128, msm_routing_get_lsm_app_type_cfg_control,
17276 msm_routing_put_lsm_app_type_cfg_control),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017277};
17278
17279static int msm_routing_get_use_ds1_or_ds2_control(
17280 struct snd_kcontrol *kcontrol,
17281 struct snd_ctl_elem_value *ucontrol)
17282{
17283 ucontrol->value.integer.value[0] = is_ds2_on;
17284 return 0;
17285}
17286
17287static int msm_routing_put_use_ds1_or_ds2_control(
17288 struct snd_kcontrol *kcontrol,
17289 struct snd_ctl_elem_value *ucontrol)
17290{
17291 is_ds2_on = ucontrol->value.integer.value[0];
17292 return 0;
17293}
17294
17295static const struct snd_kcontrol_new use_ds1_or_ds2_controls[] = {
17296 SOC_SINGLE_EXT("DS2 OnOff", SND_SOC_NOPM, 0,
17297 1, 0, msm_routing_get_use_ds1_or_ds2_control,
17298 msm_routing_put_use_ds1_or_ds2_control),
17299};
17300
17301int msm_routing_get_rms_value_control(struct snd_kcontrol *kcontrol,
17302 struct snd_ctl_elem_value *ucontrol) {
17303 int rc = 0;
17304 int be_idx = 0;
17305 char *param_value;
17306 int *update_param_value;
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017307 uint32_t param_size = (RMS_PAYLOAD_LEN + 1) * sizeof(uint32_t);
17308 struct param_hdr_v3 param_hdr;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017309
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017310 param_value = kzalloc(param_size, GFP_KERNEL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017311 if (!param_value)
17312 return -ENOMEM;
17313
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017314 memset(&param_hdr, 0, sizeof(param_hdr));
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017315 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++)
17316 if (msm_bedais[be_idx].port_id == SLIMBUS_0_TX)
17317 break;
17318 if ((be_idx < MSM_BACKEND_DAI_MAX) && msm_bedais[be_idx].active) {
Vignesh Kulothungan60cc0352018-01-29 16:21:22 -080017319 param_hdr.module_id = RMS_MODULEID_APPI_PASSTHRU;
17320 param_hdr.instance_id = INSTANCE_ID_0;
17321 param_hdr.param_id = RMS_PARAM_FIRST_SAMPLE;
17322 param_hdr.param_size = param_size;
17323 rc = adm_get_pp_params(SLIMBUS_0_TX, 0, ADM_CLIENT_ID_DEFAULT,
17324 NULL, &param_hdr, (u8 *) param_value);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017325 if (rc) {
17326 pr_err("%s: get parameters failed:%d\n", __func__, rc);
17327 kfree(param_value);
17328 return -EINVAL;
17329 }
17330 update_param_value = (int *)param_value;
17331 ucontrol->value.integer.value[0] = update_param_value[0];
17332
17333 pr_debug("%s: FROM DSP value[0] 0x%x\n",
17334 __func__, update_param_value[0]);
17335 }
17336 kfree(param_value);
17337 return 0;
17338}
17339
17340static int msm_voc_session_id_put(struct snd_kcontrol *kcontrol,
17341 struct snd_ctl_elem_value *ucontrol)
17342{
17343 voc_session_id = ucontrol->value.integer.value[0];
17344
17345 pr_debug("%s: voc_session_id=%u\n", __func__, voc_session_id);
17346
17347 return 0;
17348}
17349
17350static int msm_voc_session_id_get(struct snd_kcontrol *kcontrol,
17351 struct snd_ctl_elem_value *ucontrol)
17352{
17353 ucontrol->value.integer.value[0] = voc_session_id;
17354
17355 return 0;
17356}
17357
17358static struct snd_kcontrol_new msm_voc_session_controls[] = {
17359 SOC_SINGLE_MULTI_EXT("Voc VSID", SND_SOC_NOPM, 0,
17360 0xFFFFFFFF, 0, 1, msm_voc_session_id_get,
17361 msm_voc_session_id_put),
17362};
17363
17364static int msm_sound_focus_info(struct snd_kcontrol *kcontrol,
17365 struct snd_ctl_elem_info *uinfo)
17366{
17367 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17368 uinfo->count = sizeof(struct sound_focus_param);
17369
17370 return 0;
17371}
17372
17373static int msm_voice_sound_focus_put(struct snd_kcontrol *kcontrol,
17374 struct snd_ctl_elem_value *ucontrol)
17375{
17376 int ret = 0;
17377 struct sound_focus_param soundFocusData;
17378
17379 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17380 sizeof(struct sound_focus_param));
17381 ret = voc_set_sound_focus(soundFocusData);
17382 if (ret) {
17383 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17384 __func__, ret);
17385
17386 ret = -EINVAL;
17387 }
17388
17389 return ret;
17390}
17391
17392static int msm_voice_sound_focus_get(struct snd_kcontrol *kcontrol,
17393 struct snd_ctl_elem_value *ucontrol)
17394{
17395 int ret = 0;
17396 struct sound_focus_param soundFocusData;
17397
17398 memset(&soundFocusData, 0, sizeof(struct sound_focus_param));
17399
17400 ret = voc_get_sound_focus(&soundFocusData);
17401 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017402 pr_debug("%s: Error getting Sound Focus Params, err=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017403 __func__, ret);
17404
17405 ret = -EINVAL;
17406 goto done;
17407 }
17408 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17409 sizeof(struct sound_focus_param));
17410
17411done:
17412 return ret;
17413}
17414
17415static int msm_source_tracking_info(struct snd_kcontrol *kcontrol,
17416 struct snd_ctl_elem_info *uinfo)
17417{
17418 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
17419 uinfo->count = sizeof(struct source_tracking_param);
17420
17421 return 0;
17422}
17423
17424static int msm_voice_source_tracking_get(struct snd_kcontrol *kcontrol,
17425 struct snd_ctl_elem_value *ucontrol)
17426{
Meng Wang92edfde2018-04-24 12:18:37 +080017427 int ret = 0;
17428 struct source_tracking_param sourceTrackingData;
17429
17430 memset(&sourceTrackingData, 0, sizeof(struct source_tracking_param));
17431
17432 ret = voc_get_source_tracking(&sourceTrackingData);
17433 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017434 pr_debug("%s: Error getting Source Tracking Params, err=%d\n",
Meng Wang92edfde2018-04-24 12:18:37 +080017435 __func__, ret);
17436
17437 ret = -EINVAL;
17438 goto done;
17439 }
17440 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17441 sizeof(struct source_tracking_param));
17442
17443done:
17444 return ret;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017445}
17446
17447static int msm_audio_get_copp_idx_from_port_id(int port_id, int session_type,
17448 int *copp_idx)
17449{
17450 int i, idx, be_idx;
17451 int ret = 0;
17452 unsigned long copp;
17453
17454 pr_debug("%s: Enter, port_id=%d\n", __func__, port_id);
17455
17456 ret = q6audio_validate_port(port_id);
17457 if (ret < 0) {
17458 pr_err("%s: port validation failed id 0x%x ret %d\n",
17459 __func__, port_id, ret);
17460
17461 ret = -EINVAL;
17462 goto done;
17463 }
17464
17465 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
17466 if (msm_bedais[be_idx].port_id == port_id)
17467 break;
17468 }
17469 if (be_idx >= MSM_BACKEND_DAI_MAX) {
17470 pr_err("%s: Invalid be id %d\n", __func__, be_idx);
17471
17472 ret = -EINVAL;
17473 goto done;
17474 }
17475
17476 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
17477 MSM_FRONTEND_DAI_MM_SIZE) {
17478 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
17479 copp = session_copp_map[i]
17480 [session_type][be_idx];
17481 if (test_bit(idx, &copp))
17482 break;
17483 }
17484 if (idx >= MAX_COPPS_PER_PORT)
17485 continue;
17486 else
17487 break;
17488 }
17489 if (i >= MSM_FRONTEND_DAI_MM_SIZE) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017490 pr_debug("%s: Invalid FE, exiting\n", __func__);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017491
17492 ret = -EINVAL;
17493 goto done;
17494 }
17495 *copp_idx = idx;
17496 pr_debug("%s: copp_idx=%d\n", __func__, *copp_idx);
17497
17498done:
17499 return ret;
17500}
17501
17502static int msm_audio_sound_focus_derive_port_id(struct snd_kcontrol *kcontrol,
17503 const char *prefix, int *port_id)
17504{
17505 int ret = 0;
17506
17507 pr_debug("%s: Enter, prefix:%s\n", __func__, prefix);
17508
17509 /*
17510 * Mixer control name will be like "Sound Focus Audio Tx SLIMBUS_0"
17511 * where the prefix is "Sound Focus Audio Tx ". Skip the prefix
17512 * and compare the string with the backend name to derive the port id.
17513 */
17514 if (!strcmp(kcontrol->id.name + strlen(prefix),
17515 "SLIMBUS_0")) {
17516 *port_id = SLIMBUS_0_TX;
17517 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17518 "TERT_MI2S")) {
17519 *port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
17520 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17521 "INT3_MI2S")) {
17522 *port_id = AFE_PORT_ID_INT3_MI2S_TX;
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017523 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17524 "VA_CDC_DMA_TX_0")) {
17525 *port_id = AFE_PORT_ID_VA_CODEC_DMA_TX_0;
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017526 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17527 "TX_CDC_DMA_TX_3")) {
17528 *port_id = AFE_PORT_ID_TX_CODEC_DMA_TX_3;
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017529 } else if (!strcmp(kcontrol->id.name + strlen(prefix),
17530 "QUIN_TDM_TX_0")) {
17531 *port_id = AFE_PORT_ID_QUINARY_TDM_TX;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017532 } else {
17533 pr_err("%s: mixer ctl name=%s, could not derive valid port id\n",
17534 __func__, kcontrol->id.name);
17535
17536 ret = -EINVAL;
17537 goto done;
17538 }
17539 pr_debug("%s: mixer ctl name=%s, derived port_id=%d\n",
17540 __func__, kcontrol->id.name, *port_id);
17541
17542done:
17543 return ret;
17544}
17545
17546static int msm_audio_sound_focus_put(struct snd_kcontrol *kcontrol,
17547 struct snd_ctl_elem_value *ucontrol)
17548{
17549 int ret = 0;
17550 struct sound_focus_param soundFocusData;
17551 int port_id, copp_idx;
17552
17553 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17554 "Sound Focus Audio Tx ", &port_id);
17555 if (ret != 0) {
17556 pr_err("%s: Error in deriving port id, err=%d\n",
17557 __func__, ret);
17558
17559 ret = -EINVAL;
17560 goto done;
17561 }
17562
17563 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17564 &copp_idx);
17565 if (ret) {
17566 pr_err("%s: Could not get copp idx for port_id=%d\n",
17567 __func__, port_id);
17568
17569 ret = -EINVAL;
17570 goto done;
17571 }
17572
17573 memcpy((void *)&soundFocusData, ucontrol->value.bytes.data,
17574 sizeof(struct sound_focus_param));
17575
17576 ret = adm_set_sound_focus(port_id, copp_idx, soundFocusData);
17577 if (ret) {
17578 pr_err("%s: Error setting Sound Focus Params, err=%d\n",
17579 __func__, ret);
17580
17581 ret = -EINVAL;
17582 goto done;
17583 }
17584
17585done:
17586 return ret;
17587}
17588
17589static int msm_audio_sound_focus_get(struct snd_kcontrol *kcontrol,
17590 struct snd_ctl_elem_value *ucontrol)
17591{
17592 int ret = 0;
17593 struct sound_focus_param soundFocusData;
17594 int port_id, copp_idx;
17595
17596 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17597 "Sound Focus Audio Tx ", &port_id);
17598 if (ret) {
17599 pr_err("%s: Error in deriving port id, err=%d\n",
17600 __func__, ret);
17601
17602 ret = -EINVAL;
17603 goto done;
17604 }
17605
17606 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17607 &copp_idx);
17608 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017609 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017610 __func__, port_id);
17611
17612 ret = -EINVAL;
17613 goto done;
17614 }
17615
17616 ret = adm_get_sound_focus(port_id, copp_idx, &soundFocusData);
17617 if (ret) {
17618 pr_err("%s: Error getting Sound Focus Params, err=%d\n",
17619 __func__, ret);
17620
17621 ret = -EINVAL;
17622 goto done;
17623 }
17624
17625 memcpy(ucontrol->value.bytes.data, (void *)&soundFocusData,
17626 sizeof(struct sound_focus_param));
17627
17628done:
17629 return ret;
17630}
17631
17632static int msm_audio_source_tracking_get(struct snd_kcontrol *kcontrol,
17633 struct snd_ctl_elem_value *ucontrol)
17634{
17635 int ret = 0;
17636 struct source_tracking_param sourceTrackingData;
17637 int port_id, copp_idx;
17638
17639 ret = msm_audio_sound_focus_derive_port_id(kcontrol,
17640 "Source Tracking Audio Tx ", &port_id);
17641 if (ret) {
17642 pr_err("%s: Error in deriving port id, err=%d\n",
17643 __func__, ret);
17644
17645 ret = -EINVAL;
17646 goto done;
17647 }
17648
17649 ret = msm_audio_get_copp_idx_from_port_id(port_id, SESSION_TYPE_TX,
17650 &copp_idx);
17651 if (ret) {
Vignesh Kulothungan2ce67842018-09-25 16:40:29 -070017652 pr_debug("%s: Could not get copp idx for port_id=%d\n",
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017653 __func__, port_id);
17654
17655 ret = -EINVAL;
17656 goto done;
17657 }
17658
17659 ret = adm_get_source_tracking(port_id, copp_idx, &sourceTrackingData);
17660 if (ret) {
17661 pr_err("%s: Error getting Source Tracking Params, err=%d\n",
17662 __func__, ret);
17663
17664 ret = -EINVAL;
17665 goto done;
17666 }
17667
17668 memcpy(ucontrol->value.bytes.data, (void *)&sourceTrackingData,
17669 sizeof(struct source_tracking_param));
17670
17671done:
17672 return ret;
17673}
17674
17675static const struct snd_kcontrol_new msm_source_tracking_controls[] = {
17676 {
17677 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17678 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17679 .name = "Sound Focus Voice Tx SLIMBUS_0",
17680 .info = msm_sound_focus_info,
17681 .get = msm_voice_sound_focus_get,
17682 .put = msm_voice_sound_focus_put,
17683 },
17684 {
17685 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17686 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17687 .name = "Source Tracking Voice Tx SLIMBUS_0",
17688 .info = msm_source_tracking_info,
17689 .get = msm_voice_source_tracking_get,
17690 },
17691 {
17692 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17693 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17694 .name = "Sound Focus Audio Tx SLIMBUS_0",
17695 .info = msm_sound_focus_info,
17696 .get = msm_audio_sound_focus_get,
17697 .put = msm_audio_sound_focus_put,
17698 },
17699 {
17700 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17701 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17702 .name = "Source Tracking Audio Tx SLIMBUS_0",
17703 .info = msm_source_tracking_info,
17704 .get = msm_audio_source_tracking_get,
17705 },
17706 {
17707 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17708 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17709 .name = "Sound Focus Voice Tx TERT_MI2S",
17710 .info = msm_sound_focus_info,
17711 .get = msm_voice_sound_focus_get,
17712 .put = msm_voice_sound_focus_put,
17713 },
17714 {
17715 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17716 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17717 .name = "Source Tracking Voice Tx TERT_MI2S",
17718 .info = msm_source_tracking_info,
17719 .get = msm_voice_source_tracking_get,
17720 },
17721 {
17722 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17723 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17724 .name = "Sound Focus Audio Tx TERT_MI2S",
17725 .info = msm_sound_focus_info,
17726 .get = msm_audio_sound_focus_get,
17727 .put = msm_audio_sound_focus_put,
17728 },
17729 {
17730 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17731 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17732 .name = "Source Tracking Audio Tx TERT_MI2S",
17733 .info = msm_source_tracking_info,
17734 .get = msm_audio_source_tracking_get,
17735 },
17736 {
17737 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17738 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17739 .name = "Sound Focus Voice Tx INT3_MI2S",
17740 .info = msm_sound_focus_info,
17741 .get = msm_voice_sound_focus_get,
17742 .put = msm_voice_sound_focus_put,
17743 },
17744 {
17745 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17746 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17747 .name = "Source Tracking Voice Tx INT3_MI2S",
17748 .info = msm_source_tracking_info,
17749 .get = msm_voice_source_tracking_get,
17750 },
17751 {
17752 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17753 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17754 .name = "Sound Focus Audio Tx INT3_MI2S",
17755 .info = msm_sound_focus_info,
17756 .get = msm_audio_sound_focus_get,
17757 .put = msm_audio_sound_focus_put,
17758 },
17759 {
17760 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17761 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17762 .name = "Source Tracking Audio Tx INT3_MI2S",
17763 .info = msm_source_tracking_info,
17764 .get = msm_audio_source_tracking_get,
17765 },
Mangesh Kunchamwar654b06b2018-08-02 20:29:47 +053017766 {
17767 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17768 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17769 .name = "Sound Focus Voice Tx VA_CDC_DMA_TX_0",
17770 .info = msm_sound_focus_info,
17771 .get = msm_voice_sound_focus_get,
17772 .put = msm_voice_sound_focus_put,
17773 },
17774 {
17775 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17776 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17777 .name = "Source Tracking Voice Tx VA_CDC_DMA_TX_0",
17778 .info = msm_source_tracking_info,
17779 .get = msm_voice_source_tracking_get,
17780 },
17781 {
17782 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17783 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17784 .name = "Sound Focus Audio Tx VA_CDC_DMA_TX_0",
17785 .info = msm_sound_focus_info,
17786 .get = msm_audio_sound_focus_get,
17787 .put = msm_audio_sound_focus_put,
17788 },
17789 {
17790 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17791 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17792 .name = "Source Tracking Audio Tx VA_CDC_DMA_TX_0",
17793 .info = msm_source_tracking_info,
17794 .get = msm_audio_source_tracking_get,
17795 },
Aditya Bavanaric5c7d442018-08-23 15:39:15 +053017796 {
17797 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17798 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17799 .name = "Sound Focus Voice Tx TX_CDC_DMA_TX_3",
17800 .info = msm_sound_focus_info,
17801 .get = msm_voice_sound_focus_get,
17802 .put = msm_voice_sound_focus_put,
17803 },
17804 {
17805 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17806 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17807 .name = "Source Tracking Voice Tx TX_CDC_DMA_TX_3",
17808 .info = msm_source_tracking_info,
17809 .get = msm_voice_source_tracking_get,
17810 },
17811 {
17812 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17813 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17814 .name = "Sound Focus Audio Tx TX_CDC_DMA_TX_3",
17815 .info = msm_sound_focus_info,
17816 .get = msm_audio_sound_focus_get,
17817 .put = msm_audio_sound_focus_put,
17818 },
17819 {
17820 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17821 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17822 .name = "Source Tracking Audio Tx TX_CDC_DMA_TX_3",
17823 .info = msm_source_tracking_info,
17824 .get = msm_audio_source_tracking_get,
17825 },
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053017826 {
17827 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17828 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17829 .name = "Sound Focus Voice Tx QUIN_TDM_TX_0",
17830 .info = msm_sound_focus_info,
17831 .get = msm_voice_sound_focus_get,
17832 .put = msm_voice_sound_focus_put,
17833 },
17834 {
17835 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17836 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17837 .name = "Source Tracking Voice Tx QUIN_TDM_TX_0",
17838 .info = msm_source_tracking_info,
17839 .get = msm_voice_source_tracking_get,
17840 },
17841 {
17842 .access = SNDRV_CTL_ELEM_ACCESS_READWRITE,
17843 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17844 .name = "Sound Focus Audio Tx QUIN_TDM_TX_0",
17845 .info = msm_sound_focus_info,
17846 .get = msm_audio_sound_focus_get,
17847 .put = msm_audio_sound_focus_put,
17848 },
17849 {
17850 .access = SNDRV_CTL_ELEM_ACCESS_READ,
17851 .iface = SNDRV_CTL_ELEM_IFACE_MIXER,
17852 .name = "Source Tracking Audio Tx QUIN_TDM_TX_0",
17853 .info = msm_source_tracking_info,
17854 .get = msm_audio_source_tracking_get,
17855 },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017856};
17857
17858static int spkr_prot_put_vi_lch_port(struct snd_kcontrol *kcontrol,
17859 struct snd_ctl_elem_value *ucontrol)
17860{
17861 int ret = 0;
17862 int item;
17863 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17864
17865 pr_debug("%s item is %d\n", __func__,
17866 ucontrol->value.enumerated.item[0]);
17867 mutex_lock(&routing_lock);
17868 item = ucontrol->value.enumerated.item[0];
17869 if (item < e->items) {
17870 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17871 __func__, e->shift_l, e->values[item]);
17872 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17873 e->values[item] < MSM_BACKEND_DAI_MAX)
17874 /* Enable feedback TX path */
17875 ret = afe_spk_prot_feed_back_cfg(
17876 msm_bedais[e->values[item]].port_id,
17877 msm_bedais[e->shift_l].port_id, 1, 0, 1);
17878 else {
17879 pr_debug("%s values are out of range item %d\n",
17880 __func__, e->values[item]);
17881 /* Disable feedback TX path */
17882 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17883 ret = afe_spk_prot_feed_back_cfg(0, 0, 0, 0, 0);
17884 else
17885 ret = -EINVAL;
17886 }
17887 } else {
17888 pr_err("%s item value is out of range item\n", __func__);
17889 ret = -EINVAL;
17890 }
17891 mutex_unlock(&routing_lock);
17892 return ret;
17893}
17894
17895static int spkr_prot_put_vi_rch_port(struct snd_kcontrol *kcontrol,
17896 struct snd_ctl_elem_value *ucontrol)
17897{
17898 int ret = 0;
17899 int item;
17900 struct soc_enum *e = (struct soc_enum *)kcontrol->private_value;
17901
17902 pr_debug("%s item is %d\n", __func__,
17903 ucontrol->value.enumerated.item[0]);
17904 mutex_lock(&routing_lock);
17905 item = ucontrol->value.enumerated.item[0];
17906 if (item < e->items) {
17907 pr_debug("%s RX DAI ID %d TX DAI id %d\n",
17908 __func__, e->shift_l, e->values[item]);
17909 if (e->shift_l < MSM_BACKEND_DAI_MAX &&
17910 e->values[item] < MSM_BACKEND_DAI_MAX)
17911 /* Enable feedback TX path */
17912 ret = afe_spk_prot_feed_back_cfg(
17913 msm_bedais[e->values[item]].port_id,
17914 msm_bedais[e->shift_l].port_id,
17915 1, 1, 1);
17916 else {
17917 pr_debug("%s values are out of range item %d\n",
17918 __func__, e->values[item]);
17919 /* Disable feedback TX path */
17920 if (e->values[item] == MSM_BACKEND_DAI_MAX)
17921 ret = afe_spk_prot_feed_back_cfg(0,
17922 0, 0, 0, 0);
17923 else
17924 ret = -EINVAL;
17925 }
17926 } else {
17927 pr_err("%s item value is out of range item\n", __func__);
17928 ret = -EINVAL;
17929 }
17930 mutex_unlock(&routing_lock);
17931 return ret;
17932}
17933
17934static int spkr_prot_get_vi_lch_port(struct snd_kcontrol *kcontrol,
17935 struct snd_ctl_elem_value *ucontrol)
17936{
17937 pr_debug("%s\n", __func__);
17938 return 0;
17939}
17940
17941static int spkr_prot_get_vi_rch_port(struct snd_kcontrol *kcontrol,
17942 struct snd_ctl_elem_value *ucontrol)
17943{
17944 pr_debug("%s\n", __func__);
17945 ucontrol->value.enumerated.item[0] = 0;
17946 return 0;
17947}
17948
17949static const char * const slim0_rx_vi_fb_tx_lch_mux_text[] = {
17950 "ZERO", "SLIM4_TX"
17951};
17952
17953static const char * const slim0_rx_vi_fb_tx_rch_mux_text[] = {
17954 "ZERO", "SLIM4_TX"
17955};
17956
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017957static const char * const wsa_rx_0_vi_fb_tx_lch_mux_text[] = {
17958 "ZERO", "WSA_CDC_DMA_TX_0"
17959};
17960
17961static const char * const wsa_rx_0_vi_fb_tx_rch_mux_text[] = {
17962 "ZERO", "WSA_CDC_DMA_TX_0"
17963};
17964
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017965static const char * const mi2s_rx_vi_fb_tx_mux_text[] = {
17966 "ZERO", "SENARY_TX"
17967};
17968
17969static const char * const int4_mi2s_rx_vi_fb_tx_mono_mux_text[] = {
17970 "ZERO", "INT5_MI2S_TX"
17971};
17972
17973static const char * const int4_mi2s_rx_vi_fb_tx_stereo_mux_text[] = {
17974 "ZERO", "INT5_MI2S_TX"
17975};
17976
17977static const int const slim0_rx_vi_fb_tx_lch_value[] = {
17978 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17979};
17980
17981static const int const slim0_rx_vi_fb_tx_rch_value[] = {
17982 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SLIMBUS_4_TX
17983};
17984
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053017985static const int const wsa_rx_0_vi_fb_tx_lch_value[] = {
17986 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17987};
17988
17989static const int const wsa_rx_0_vi_fb_tx_rch_value[] = {
17990 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_WSA_CDC_DMA_TX_0
17991};
17992
17993
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053017994static const int const mi2s_rx_vi_fb_tx_value[] = {
17995 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_SENARY_MI2S_TX
17996};
17997
17998static const int const int4_mi2s_rx_vi_fb_tx_mono_ch_value[] = {
17999 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18000};
18001
18002static const int const int4_mi2s_rx_vi_fb_tx_stereo_ch_value[] = {
18003 MSM_BACKEND_DAI_MAX, MSM_BACKEND_DAI_INT5_MI2S_TX
18004};
18005
18006static const struct soc_enum slim0_rx_vi_fb_lch_mux_enum =
18007 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18008 ARRAY_SIZE(slim0_rx_vi_fb_tx_lch_mux_text),
18009 slim0_rx_vi_fb_tx_lch_mux_text, slim0_rx_vi_fb_tx_lch_value);
18010
18011static const struct soc_enum slim0_rx_vi_fb_rch_mux_enum =
18012 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_SLIMBUS_0_RX, 0, 0,
18013 ARRAY_SIZE(slim0_rx_vi_fb_tx_rch_mux_text),
18014 slim0_rx_vi_fb_tx_rch_mux_text, slim0_rx_vi_fb_tx_rch_value);
18015
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018016static const struct soc_enum wsa_rx_0_vi_fb_lch_mux_enum =
18017 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18018 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_lch_mux_text),
18019 wsa_rx_0_vi_fb_tx_lch_mux_text, wsa_rx_0_vi_fb_tx_lch_value);
18020
18021static const struct soc_enum wsa_rx_0_vi_fb_rch_mux_enum =
18022 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_WSA_CDC_DMA_RX_0, 0, 0,
18023 ARRAY_SIZE(wsa_rx_0_vi_fb_tx_rch_mux_text),
18024 wsa_rx_0_vi_fb_tx_rch_mux_text, wsa_rx_0_vi_fb_tx_rch_value);
18025
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018026static const struct soc_enum mi2s_rx_vi_fb_mux_enum =
18027 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_PRI_MI2S_RX, 0, 0,
18028 ARRAY_SIZE(mi2s_rx_vi_fb_tx_mux_text),
18029 mi2s_rx_vi_fb_tx_mux_text, mi2s_rx_vi_fb_tx_value);
18030
18031static const struct soc_enum int4_mi2s_rx_vi_fb_mono_ch_mux_enum =
18032 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18033 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_mono_mux_text),
18034 int4_mi2s_rx_vi_fb_tx_mono_mux_text,
18035 int4_mi2s_rx_vi_fb_tx_mono_ch_value);
18036
18037static const struct soc_enum int4_mi2s_rx_vi_fb_stereo_ch_mux_enum =
18038 SOC_VALUE_ENUM_DOUBLE(0, MSM_BACKEND_DAI_INT4_MI2S_RX, 0, 0,
18039 ARRAY_SIZE(int4_mi2s_rx_vi_fb_tx_stereo_mux_text),
18040 int4_mi2s_rx_vi_fb_tx_stereo_mux_text,
18041 int4_mi2s_rx_vi_fb_tx_stereo_ch_value);
18042
18043static const struct snd_kcontrol_new slim0_rx_vi_fb_lch_mux =
18044 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_LCH_MUX",
18045 slim0_rx_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18046 spkr_prot_put_vi_lch_port);
18047
18048static const struct snd_kcontrol_new slim0_rx_vi_fb_rch_mux =
18049 SOC_DAPM_ENUM_EXT("SLIM0_RX_VI_FB_RCH_MUX",
18050 slim0_rx_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18051 spkr_prot_put_vi_rch_port);
18052
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018053static const struct snd_kcontrol_new wsa_rx_0_vi_fb_lch_mux =
18054 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_LCH_MUX",
18055 wsa_rx_0_vi_fb_lch_mux_enum, spkr_prot_get_vi_lch_port,
18056 spkr_prot_put_vi_lch_port);
18057
18058static const struct snd_kcontrol_new wsa_rx_0_vi_fb_rch_mux =
18059 SOC_DAPM_ENUM_EXT("WSA_RX_0_VI_FB_RCH_MUX",
18060 wsa_rx_0_vi_fb_rch_mux_enum, spkr_prot_get_vi_rch_port,
18061 spkr_prot_put_vi_rch_port);
18062
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018063static const struct snd_kcontrol_new mi2s_rx_vi_fb_mux =
18064 SOC_DAPM_ENUM_EXT("PRI_MI2S_RX_VI_FB_MUX",
18065 mi2s_rx_vi_fb_mux_enum, spkr_prot_get_vi_lch_port,
18066 spkr_prot_put_vi_lch_port);
18067
18068static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_mono_ch_mux =
18069 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_MONO_CH_MUX",
18070 int4_mi2s_rx_vi_fb_mono_ch_mux_enum, spkr_prot_get_vi_lch_port,
18071 spkr_prot_put_vi_lch_port);
18072
18073static const struct snd_kcontrol_new int4_mi2s_rx_vi_fb_stereo_ch_mux =
18074 SOC_DAPM_ENUM_EXT("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX",
18075 int4_mi2s_rx_vi_fb_stereo_ch_mux_enum, spkr_prot_get_vi_rch_port,
18076 spkr_prot_put_vi_rch_port);
18077
18078static const struct snd_soc_dapm_widget msm_qdsp6_widgets[] = {
18079 /* Frontend AIF */
18080 /* Widget name equals to Front-End DAI name<Need confirmation>,
18081 * Stream name must contains substring of front-end dai name
18082 */
18083 SND_SOC_DAPM_AIF_IN("MM_DL1", "MultiMedia1 Playback", 0, 0, 0, 0),
18084 SND_SOC_DAPM_AIF_IN("MM_DL2", "MultiMedia2 Playback", 0, 0, 0, 0),
18085 SND_SOC_DAPM_AIF_IN("MM_DL3", "MultiMedia3 Playback", 0, 0, 0, 0),
18086 SND_SOC_DAPM_AIF_IN("MM_DL4", "MultiMedia4 Playback", 0, 0, 0, 0),
18087 SND_SOC_DAPM_AIF_IN("MM_DL5", "MultiMedia5 Playback", 0, 0, 0, 0),
18088 SND_SOC_DAPM_AIF_IN("MM_DL6", "MultiMedia6 Playback", 0, 0, 0, 0),
18089 SND_SOC_DAPM_AIF_IN("MM_DL7", "MultiMedia7 Playback", 0, 0, 0, 0),
18090 SND_SOC_DAPM_AIF_IN("MM_DL8", "MultiMedia8 Playback", 0, 0, 0, 0),
18091 SND_SOC_DAPM_AIF_IN("MM_DL9", "MultiMedia9 Playback", 0, 0, 0, 0),
18092 SND_SOC_DAPM_AIF_IN("MM_DL10", "MultiMedia10 Playback", 0, 0, 0, 0),
18093 SND_SOC_DAPM_AIF_IN("MM_DL11", "MultiMedia11 Playback", 0, 0, 0, 0),
18094 SND_SOC_DAPM_AIF_IN("MM_DL12", "MultiMedia12 Playback", 0, 0, 0, 0),
18095 SND_SOC_DAPM_AIF_IN("MM_DL13", "MultiMedia13 Playback", 0, 0, 0, 0),
18096 SND_SOC_DAPM_AIF_IN("MM_DL14", "MultiMedia14 Playback", 0, 0, 0, 0),
18097 SND_SOC_DAPM_AIF_IN("MM_DL15", "MultiMedia15 Playback", 0, 0, 0, 0),
18098 SND_SOC_DAPM_AIF_IN("MM_DL16", "MultiMedia16 Playback", 0, 0, 0, 0),
18099 SND_SOC_DAPM_AIF_IN("MM_DL20", "MultiMedia20 Playback", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018100 SND_SOC_DAPM_AIF_IN("MM_DL21", "MultiMedia21 Playback", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018101 SND_SOC_DAPM_AIF_IN("MM_DL26", "MultiMedia26 Playback", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018102 SND_SOC_DAPM_AIF_IN("VOIP_DL", "VoIP Playback", 0, 0, 0, 0),
18103 SND_SOC_DAPM_AIF_OUT("MM_UL1", "MultiMedia1 Capture", 0, 0, 0, 0),
18104 SND_SOC_DAPM_AIF_OUT("MM_UL2", "MultiMedia2 Capture", 0, 0, 0, 0),
18105 SND_SOC_DAPM_AIF_OUT("MM_UL3", "MultiMedia3 Capture", 0, 0, 0, 0),
18106 SND_SOC_DAPM_AIF_OUT("MM_UL4", "MultiMedia4 Capture", 0, 0, 0, 0),
18107 SND_SOC_DAPM_AIF_OUT("MM_UL5", "MultiMedia5 Capture", 0, 0, 0, 0),
18108 SND_SOC_DAPM_AIF_OUT("MM_UL6", "MultiMedia6 Capture", 0, 0, 0, 0),
18109 SND_SOC_DAPM_AIF_OUT("MM_UL8", "MultiMedia8 Capture", 0, 0, 0, 0),
18110 SND_SOC_DAPM_AIF_OUT("MM_UL9", "MultiMedia9 Capture", 0, 0, 0, 0),
Laxminath Kasam38070be2017-08-17 18:21:59 +053018111 SND_SOC_DAPM_AIF_OUT("MM_UL10", "MultiMedia10 Capture", 0, 0, 0, 0),
Asish Bhattacharya34504582017-08-08 12:55:01 +053018112 SND_SOC_DAPM_AIF_OUT("MM_UL16", "MultiMedia16 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018113 SND_SOC_DAPM_AIF_OUT("MM_UL17", "MultiMedia17 Capture", 0, 0, 0, 0),
18114 SND_SOC_DAPM_AIF_OUT("MM_UL18", "MultiMedia18 Capture", 0, 0, 0, 0),
18115 SND_SOC_DAPM_AIF_OUT("MM_UL19", "MultiMedia19 Capture", 0, 0, 0, 0),
18116 SND_SOC_DAPM_AIF_OUT("MM_UL20", "MultiMedia20 Capture", 0, 0, 0, 0),
Derek Chen07c6d1c2018-07-05 10:39:25 -070018117 SND_SOC_DAPM_AIF_OUT("MM_UL21", "MultiMedia21 Capture", 0, 0, 0, 0),
Surendar Karkac1cde372018-08-14 18:56:24 +053018118 SND_SOC_DAPM_AIF_OUT("MM_UL27", "MultiMedia27 Capture", 0, 0, 0, 0),
Meng Wang5c4bab72018-04-25 10:40:01 +080018119 SND_SOC_DAPM_AIF_OUT("MM_UL28", "MultiMedia28 Capture", 0, 0, 0, 0),
18120 SND_SOC_DAPM_AIF_OUT("MM_UL29", "MultiMedia29 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018121 SND_SOC_DAPM_AIF_OUT("VOIP_UL", "VoIP Capture", 0, 0, 0, 0),
18122 SND_SOC_DAPM_AIF_IN("VOICEMMODE1_DL",
18123 "VoiceMMode1 Playback", 0, 0, 0, 0),
18124 SND_SOC_DAPM_AIF_OUT("VOICEMMODE1_UL",
18125 "VoiceMMode1 Capture", 0, 0, 0, 0),
18126 SND_SOC_DAPM_AIF_IN("VOICEMMODE2_DL",
18127 "VoiceMMode2 Playback", 0, 0, 0, 0),
18128 SND_SOC_DAPM_AIF_OUT("VOICEMMODE2_UL",
18129 "VoiceMMode2 Capture", 0, 0, 0, 0),
18130 SND_SOC_DAPM_AIF_IN("SLIM0_DL_HL", "SLIMBUS0_HOSTLESS Playback",
18131 0, 0, 0, 0),
18132 SND_SOC_DAPM_AIF_OUT("SLIM0_UL_HL", "SLIMBUS0_HOSTLESS Capture",
18133 0, 0, 0, 0),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018134 SND_SOC_DAPM_AIF_IN("CDC_DMA_DL_HL", "CDC_DMA_HOSTLESS Playback",
18135 0, 0, 0, 0),
18136 SND_SOC_DAPM_AIF_OUT("CDC_DMA_UL_HL", "CDC_DMA_HOSTLESS Capture",
18137 0, 0, 0, 0),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018138 SND_SOC_DAPM_AIF_OUT("TX3_CDC_DMA_UL_HL",
18139 "TX3_CDC_DMA_HOSTLESS Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018140 SND_SOC_DAPM_AIF_OUT("CPE_LSM_UL_HL", "CPE LSM capture",
18141 0, 0, 0, 0),
18142 SND_SOC_DAPM_AIF_IN("SLIM1_DL_HL", "SLIMBUS1_HOSTLESS Playback",
18143 0, 0, 0, 0),
18144 SND_SOC_DAPM_AIF_OUT("SLIM1_UL_HL", "SLIMBUS1_HOSTLESS Capture",
18145 0, 0, 0, 0),
18146 SND_SOC_DAPM_AIF_IN("SLIM3_DL_HL", "SLIMBUS3_HOSTLESS Playback",
18147 0, 0, 0, 0),
18148 SND_SOC_DAPM_AIF_OUT("SLIM3_UL_HL", "SLIMBUS3_HOSTLESS Capture",
18149 0, 0, 0, 0),
18150 SND_SOC_DAPM_AIF_IN("SLIM4_DL_HL", "SLIMBUS4_HOSTLESS Playback",
18151 0, 0, 0, 0),
18152 SND_SOC_DAPM_AIF_OUT("SLIM4_UL_HL", "SLIMBUS4_HOSTLESS Capture",
18153 0, 0, 0, 0),
18154 SND_SOC_DAPM_AIF_IN("SLIM6_DL_HL", "SLIMBUS6_HOSTLESS Playback",
18155 0, 0, 0, 0),
18156 SND_SOC_DAPM_AIF_OUT("SLIM6_UL_HL", "SLIMBUS6_HOSTLESS Capture",
18157 0, 0, 0, 0),
18158 SND_SOC_DAPM_AIF_IN("SLIM7_DL_HL", "SLIMBUS7_HOSTLESS Playback",
18159 0, 0, 0, 0),
18160 SND_SOC_DAPM_AIF_OUT("SLIM7_UL_HL", "SLIMBUS7_HOSTLESS Capture",
18161 0, 0, 0, 0),
18162 SND_SOC_DAPM_AIF_IN("SLIM8_DL_HL", "SLIMBUS8_HOSTLESS Playback",
18163 0, 0, 0, 0),
18164 SND_SOC_DAPM_AIF_OUT("SLIM8_UL_HL", "SLIMBUS8_HOSTLESS Capture",
18165 0, 0, 0, 0),
18166 SND_SOC_DAPM_AIF_IN("INTFM_DL_HL", "INT_FM_HOSTLESS Playback",
18167 0, 0, 0, 0),
18168 SND_SOC_DAPM_AIF_OUT("INTFM_UL_HL", "INT_FM_HOSTLESS Capture",
18169 0, 0, 0, 0),
18170 SND_SOC_DAPM_AIF_IN("INTHFP_DL_HL", "INT_HFP_BT_HOSTLESS Playback",
18171 0, 0, 0, 0),
18172 SND_SOC_DAPM_AIF_OUT("INTHFP_UL_HL", "INT_HFP_BT_HOSTLESS Capture",
18173 0, 0, 0, 0),
18174 SND_SOC_DAPM_AIF_IN("USBAUDIO_DL_HL", "USBAUDIO_HOSTLESS Playback",
18175 0, 0, 0, 0),
18176 SND_SOC_DAPM_AIF_OUT("USBAUDIO_UL_HL", "USBAUDIO_HOSTLESS Capture",
18177 0, 0, 0, 0),
18178 SND_SOC_DAPM_AIF_IN("HDMI_DL_HL", "HDMI_HOSTLESS Playback", 0, 0, 0, 0),
18179 SND_SOC_DAPM_AIF_IN("SEC_I2S_DL_HL", "SEC_I2S_RX_HOSTLESS Playback",
18180 0, 0, 0, 0),
18181 SND_SOC_DAPM_AIF_IN("INT0_MI2S_DL_HL",
18182 "INT0 MI2S_RX Hostless Playback",
18183 0, 0, 0, 0),
18184 SND_SOC_DAPM_AIF_IN("INT4_MI2S_DL_HL",
18185 "INT4 MI2S_RX Hostless Playback",
18186 0, 0, 0, 0),
18187 SND_SOC_DAPM_AIF_IN("PRI_MI2S_DL_HL",
18188 "Primary MI2S_RX Hostless Playback",
18189 0, 0, 0, 0),
18190 SND_SOC_DAPM_AIF_IN("SEC_MI2S_DL_HL",
18191 "Secondary MI2S_RX Hostless Playback",
18192 0, 0, 0, 0),
18193 SND_SOC_DAPM_AIF_IN("TERT_MI2S_DL_HL",
18194 "Tertiary MI2S_RX Hostless Playback",
18195 0, 0, 0, 0),
18196 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_DL_HL",
18197 "Quaternary MI2S_RX Hostless Playback",
18198 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018199 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_DL_HL",
18200 "Quinary MI2S_RX Hostless Playback",
18201 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018202
18203 SND_SOC_DAPM_AIF_IN("AUXPCM_DL_HL", "AUXPCM_HOSTLESS Playback",
18204 0, 0, 0, 0),
18205 SND_SOC_DAPM_AIF_OUT("AUXPCM_UL_HL", "AUXPCM_HOSTLESS Capture",
18206 0, 0, 0, 0),
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080018207 SND_SOC_DAPM_AIF_IN("SEC_AUXPCM_DL_HL", "SEC_AUXPCM_HOSTLESS Playback",
18208 0, 0, 0, 0),
18209 SND_SOC_DAPM_AIF_OUT("SEC_AUXPCM_UL_HL", "SEC_AUXPCM_HOSTLESS Capture",
18210 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018211 SND_SOC_DAPM_AIF_OUT("MI2S_UL_HL", "MI2S_TX_HOSTLESS Capture",
18212 0, 0, 0, 0),
18213 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_UL_HL",
18214 "INT3 MI2S_TX Hostless Capture",
18215 0, 0, 0, 0),
18216 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_UL_HL",
18217 "Tertiary MI2S_TX Hostless Capture",
18218 0, 0, 0, 0),
18219 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_UL_HL",
18220 "Secondary MI2S_TX Hostless Capture",
18221 0, 0, 0, 0),
18222 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_UL_HL",
18223 "Primary MI2S_TX Hostless Capture",
18224 0, 0, 0, 0),
18225 SND_SOC_DAPM_AIF_OUT("MI2S_DL_HL", "MI2S_RX_HOSTLESS Playback",
18226 0, 0, 0, 0),
18227 SND_SOC_DAPM_AIF_IN("DTMF_DL_HL", "DTMF_RX_HOSTLESS Playback",
18228 0, 0, 0, 0),
18229 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_UL_HL",
18230 "Quaternary MI2S_TX Hostless Capture",
18231 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018232 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_UL_HL",
18233 "Quinary MI2S_TX Hostless Capture",
18234 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018235
18236 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_0_DL_HL",
18237 "Primary TDM0 Hostless Playback",
18238 0, 0, 0, 0),
18239 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_0_UL_HL",
18240 "Primary TDM0 Hostless Capture",
18241 0, 0, 0, 0),
18242 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_1_DL_HL",
18243 "Primary TDM1 Hostless Playback",
18244 0, 0, 0, 0),
18245 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_1_UL_HL",
18246 "Primary TDM1 Hostless Capture",
18247 0, 0, 0, 0),
18248 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_2_DL_HL",
18249 "Primary TDM2 Hostless Playback",
18250 0, 0, 0, 0),
18251 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_2_UL_HL",
18252 "Primary TDM2 Hostless Capture",
18253 0, 0, 0, 0),
18254 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_3_DL_HL",
18255 "Primary TDM3 Hostless Playback",
18256 0, 0, 0, 0),
18257 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_3_UL_HL",
18258 "Primary TDM3 Hostless Capture",
18259 0, 0, 0, 0),
18260 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_4_DL_HL",
18261 "Primary TDM4 Hostless Playback",
18262 0, 0, 0, 0),
18263 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_4_UL_HL",
18264 "Primary TDM4 Hostless Capture",
18265 0, 0, 0, 0),
18266 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_5_DL_HL",
18267 "Primary TDM5 Hostless Playback",
18268 0, 0, 0, 0),
18269 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_5_UL_HL",
18270 "Primary TDM5 Hostless Capture",
18271 0, 0, 0, 0),
18272 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_6_DL_HL",
18273 "Primary TDM6 Hostless Playback",
18274 0, 0, 0, 0),
18275 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_6_UL_HL",
18276 "Primary TDM6 Hostless Capture",
18277 0, 0, 0, 0),
18278 SND_SOC_DAPM_AIF_IN("PRI_TDM_RX_7_DL_HL",
18279 "Primary TDM7 Hostless Playback",
18280 0, 0, 0, 0),
18281 SND_SOC_DAPM_AIF_OUT("PRI_TDM_TX_7_UL_HL",
18282 "Primary TDM7 Hostless Capture",
18283 0, 0, 0, 0),
18284 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_0_DL_HL",
18285 "Secondary TDM0 Hostless Playback",
18286 0, 0, 0, 0),
18287 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_0_UL_HL",
18288 "Secondary TDM0 Hostless Capture",
18289 0, 0, 0, 0),
18290 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_1_DL_HL",
18291 "Secondary TDM1 Hostless Playback",
18292 0, 0, 0, 0),
18293 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_1_UL_HL",
18294 "Secondary TDM1 Hostless Capture",
18295 0, 0, 0, 0),
18296 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_2_DL_HL",
18297 "Secondary TDM2 Hostless Playback",
18298 0, 0, 0, 0),
18299 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_2_UL_HL",
18300 "Secondary TDM2 Hostless Capture",
18301 0, 0, 0, 0),
18302 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_3_DL_HL",
18303 "Secondary TDM3 Hostless Playback",
18304 0, 0, 0, 0),
18305 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_3_UL_HL",
18306 "Secondary TDM3 Hostless Capture",
18307 0, 0, 0, 0),
18308 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_4_DL_HL",
18309 "Secondary TDM4 Hostless Playback",
18310 0, 0, 0, 0),
18311 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_4_UL_HL",
18312 "Secondary TDM4 Hostless Capture",
18313 0, 0, 0, 0),
18314 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_5_DL_HL",
18315 "Secondary TDM5 Hostless Playback",
18316 0, 0, 0, 0),
18317 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_5_UL_HL",
18318 "Secondary TDM5 Hostless Capture",
18319 0, 0, 0, 0),
18320 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_6_DL_HL",
18321 "Secondary TDM6 Hostless Playback",
18322 0, 0, 0, 0),
18323 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_6_UL_HL",
18324 "Secondary TDM6 Hostless Capture",
18325 0, 0, 0, 0),
18326 SND_SOC_DAPM_AIF_IN("SEC_TDM_RX_7_DL_HL",
18327 "Secondary TDM7 Hostless Playback",
18328 0, 0, 0, 0),
18329 SND_SOC_DAPM_AIF_OUT("SEC_TDM_TX_7_UL_HL",
18330 "Secondary TDM7 Hostless Capture",
18331 0, 0, 0, 0),
18332 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_0_DL_HL",
18333 "Tertiary TDM0 Hostless Playback",
18334 0, 0, 0, 0),
18335 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_0_UL_HL",
18336 "Tertiary TDM0 Hostless Capture",
18337 0, 0, 0, 0),
18338 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_1_DL_HL",
18339 "Tertiary TDM1 Hostless Playback",
18340 0, 0, 0, 0),
18341 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_1_UL_HL",
18342 "Tertiary TDM1 Hostless Capture",
18343 0, 0, 0, 0),
18344 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_2_DL_HL",
18345 "Tertiary TDM2 Hostless Playback",
18346 0, 0, 0, 0),
18347 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_2_UL_HL",
18348 "Tertiary TDM2 Hostless Capture",
18349 0, 0, 0, 0),
18350 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_3_DL_HL",
18351 "Tertiary TDM3 Hostless Playback",
18352 0, 0, 0, 0),
18353 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_3_UL_HL",
18354 "Tertiary TDM3 Hostless Capture",
18355 0, 0, 0, 0),
18356 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_4_DL_HL",
18357 "Tertiary TDM4 Hostless Playback",
18358 0, 0, 0, 0),
18359 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_4_UL_HL",
18360 "Tertiary TDM4 Hostless Capture",
18361 0, 0, 0, 0),
18362 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_5_DL_HL",
18363 "Tertiary TDM5 Hostless Playback",
18364 0, 0, 0, 0),
18365 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_5_UL_HL",
18366 "Tertiary TDM5 Hostless Capture",
18367 0, 0, 0, 0),
18368 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_6_DL_HL",
18369 "Tertiary TDM6 Hostless Playback",
18370 0, 0, 0, 0),
18371 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_6_UL_HL",
18372 "Tertiary TDM6 Hostless Capture",
18373 0, 0, 0, 0),
18374 SND_SOC_DAPM_AIF_IN("TERT_TDM_RX_7_DL_HL",
18375 "Tertiary TDM7 Hostless Playback",
18376 0, 0, 0, 0),
18377 SND_SOC_DAPM_AIF_OUT("TERT_TDM_TX_7_UL_HL",
18378 "Tertiary TDM7 Hostless Capture",
18379 0, 0, 0, 0),
18380 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_0_DL_HL",
18381 "Quaternary TDM0 Hostless Playback",
18382 0, 0, 0, 0),
18383 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_0_UL_HL",
18384 "Quaternary TDM0 Hostless Capture",
18385 0, 0, 0, 0),
18386 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_1_DL_HL",
18387 "Quaternary TDM1 Hostless Playback",
18388 0, 0, 0, 0),
18389 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_1_UL_HL",
18390 "Quaternary TDM1 Hostless Capture",
18391 0, 0, 0, 0),
18392 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_2_DL_HL",
18393 "Quaternary TDM2 Hostless Playback",
18394 0, 0, 0, 0),
18395 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_2_UL_HL",
18396 "Quaternary TDM2 Hostless Capture",
18397 0, 0, 0, 0),
18398 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_3_DL_HL",
18399 "Quaternary TDM3 Hostless Playback",
18400 0, 0, 0, 0),
18401 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_3_UL_HL",
18402 "Quaternary TDM3 Hostless Capture",
18403 0, 0, 0, 0),
18404 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_4_DL_HL",
18405 "Quaternary TDM4 Hostless Playback",
18406 0, 0, 0, 0),
18407 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_4_UL_HL",
18408 "Quaternary TDM4 Hostless Capture",
18409 0, 0, 0, 0),
18410 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_5_DL_HL",
18411 "Quaternary TDM5 Hostless Playback",
18412 0, 0, 0, 0),
18413 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_5_UL_HL",
18414 "Quaternary TDM5 Hostless Capture",
18415 0, 0, 0, 0),
18416 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_6_DL_HL",
18417 "Quaternary TDM6 Hostless Playback",
18418 0, 0, 0, 0),
18419 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_6_UL_HL",
18420 "Quaternary TDM6 Hostless Capture",
18421 0, 0, 0, 0),
18422 SND_SOC_DAPM_AIF_IN("QUAT_TDM_RX_7_DL_HL",
18423 "Quaternary TDM7 Hostless Playback",
18424 0, 0, 0, 0),
18425 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_TX_7_UL_HL",
18426 "Quaternary TDM7 Hostless Capture",
18427 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018428 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_0_DL_HL",
18429 "Quinary TDM0 Hostless Playback",
18430 0, 0, 0, 0),
18431 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_0_UL_HL",
18432 "Quinary TDM0 Hostless Capture",
18433 0, 0, 0, 0),
18434 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_1_DL_HL",
18435 "Quinary TDM1 Hostless Playback",
18436 0, 0, 0, 0),
18437 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_1_UL_HL",
18438 "Quinary TDM1 Hostless Capture",
18439 0, 0, 0, 0),
18440 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_2_DL_HL",
18441 "Quinary TDM2 Hostless Playback",
18442 0, 0, 0, 0),
18443 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_2_UL_HL",
18444 "Quinary TDM2 Hostless Capture",
18445 0, 0, 0, 0),
18446 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_3_DL_HL",
18447 "Quinary TDM3 Hostless Playback",
18448 0, 0, 0, 0),
18449 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_3_UL_HL",
18450 "Quinary TDM3 Hostless Capture",
18451 0, 0, 0, 0),
18452 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_4_DL_HL",
18453 "Quinary TDM4 Hostless Playback",
18454 0, 0, 0, 0),
18455 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_4_UL_HL",
18456 "Quinary TDM4 Hostless Capture",
18457 0, 0, 0, 0),
18458 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_5_DL_HL",
18459 "Quinary TDM5 Hostless Playback",
18460 0, 0, 0, 0),
18461 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_5_UL_HL",
18462 "Quinary TDM5 Hostless Capture",
18463 0, 0, 0, 0),
18464 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_6_DL_HL",
18465 "Quinary TDM6 Hostless Playback",
18466 0, 0, 0, 0),
18467 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_6_UL_HL",
18468 "Quinary TDM6 Hostless Capture",
18469 0, 0, 0, 0),
18470 SND_SOC_DAPM_AIF_IN("QUIN_TDM_RX_7_DL_HL",
18471 "Quinary TDM7 Hostless Playback",
18472 0, 0, 0, 0),
18473 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_TX_7_UL_HL",
18474 "Quinary TDM7 Hostless Capture",
18475 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018476
18477 /* LSM */
18478 SND_SOC_DAPM_AIF_OUT("LSM1_UL_HL", "Listen 1 Audio Service Capture",
18479 0, 0, 0, 0),
18480 SND_SOC_DAPM_AIF_OUT("LSM2_UL_HL", "Listen 2 Audio Service Capture",
18481 0, 0, 0, 0),
18482 SND_SOC_DAPM_AIF_OUT("LSM3_UL_HL", "Listen 3 Audio Service Capture",
18483 0, 0, 0, 0),
18484 SND_SOC_DAPM_AIF_OUT("LSM4_UL_HL", "Listen 4 Audio Service Capture",
18485 0, 0, 0, 0),
18486 SND_SOC_DAPM_AIF_OUT("LSM5_UL_HL", "Listen 5 Audio Service Capture",
18487 0, 0, 0, 0),
18488 SND_SOC_DAPM_AIF_OUT("LSM6_UL_HL", "Listen 6 Audio Service Capture",
18489 0, 0, 0, 0),
18490 SND_SOC_DAPM_AIF_OUT("LSM7_UL_HL", "Listen 7 Audio Service Capture",
18491 0, 0, 0, 0),
18492 SND_SOC_DAPM_AIF_OUT("LSM8_UL_HL", "Listen 8 Audio Service Capture",
18493 0, 0, 0, 0),
18494 SND_SOC_DAPM_AIF_IN("QCHAT_DL", "QCHAT Playback", 0, 0, 0, 0),
18495 SND_SOC_DAPM_AIF_OUT("QCHAT_UL", "QCHAT Capture", 0, 0, 0, 0),
18496 /* Backend AIF */
18497 /* Stream name equals to backend dai link stream name */
18498 SND_SOC_DAPM_AIF_OUT("PRI_I2S_RX", "Primary I2S Playback", 0, 0, 0, 0),
18499 SND_SOC_DAPM_AIF_OUT("SEC_I2S_RX", "Secondary I2S Playback",
18500 0, 0, 0, 0),
Ralf Herzc8701f72018-06-20 11:37:35 +020018501 SND_SOC_DAPM_AIF_OUT("PRI_SPDIF_RX", "Primary SPDIF Playback",
18502 0, 0, 0, 0),
18503 SND_SOC_DAPM_AIF_IN("PRI_SPDIF_TX", "Primary SPDIF Capture",
18504 0, 0, 0, 0),
18505 SND_SOC_DAPM_AIF_OUT("SEC_SPDIF_RX", "Secondary SPDIF Playback",
18506 0, 0, 0, 0),
18507 SND_SOC_DAPM_AIF_IN("SEC_SPDIF_TX", "Secondary SPDIF Capture",
18508 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018509 SND_SOC_DAPM_AIF_OUT("SLIMBUS_0_RX", "Slimbus Playback", 0, 0, 0, 0),
18510 SND_SOC_DAPM_AIF_OUT("SLIMBUS_2_RX", "Slimbus2 Playback", 0, 0, 0, 0),
18511 SND_SOC_DAPM_AIF_OUT("SLIMBUS_5_RX", "Slimbus5 Playback", 0, 0, 0, 0),
18512 SND_SOC_DAPM_AIF_OUT("HDMI", "HDMI Playback", 0, 0, 0, 0),
18513 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT", "Display Port Playback",
18514 0, 0, 0, 0),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018515 SND_SOC_DAPM_AIF_OUT("DISPLAY_PORT1", "Display Port1 Playback",
18516 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018517 SND_SOC_DAPM_AIF_OUT("MI2S_RX", "MI2S Playback", 0, 0, 0, 0),
18518 SND_SOC_DAPM_AIF_OUT("QUAT_MI2S_RX", "Quaternary MI2S Playback",
18519 0, 0, 0, 0),
18520 SND_SOC_DAPM_AIF_OUT("TERT_MI2S_RX", "Tertiary MI2S Playback",
18521 0, 0, 0, 0),
18522 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX", "Secondary MI2S Playback",
18523 0, 0, 0, 0),
18524 SND_SOC_DAPM_AIF_OUT("SEC_MI2S_RX_SD1",
18525 "Secondary MI2S Playback SD1",
18526 0, 0, 0, 0),
18527 SND_SOC_DAPM_AIF_OUT("PRI_MI2S_RX", "Primary MI2S Playback",
18528 0, 0, 0, 0),
18529 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_RX", "INT0 MI2S Playback",
18530 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018531 SND_SOC_DAPM_AIF_OUT("INT2_MI2S_RX", "INT2 MI2S Playback",
18532 0, 0, 0, 0),
18533 SND_SOC_DAPM_AIF_OUT("INT3_MI2S_RX", "INT3 MI2S Playback",
18534 0, 0, 0, 0),
18535 SND_SOC_DAPM_AIF_OUT("INT5_MI2S_RX", "INT5 MI2S Playback",
18536 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018537 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_RX", "INT4 MI2S Playback",
18538 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018539 SND_SOC_DAPM_AIF_OUT("INT4_MI2S_TX", "INT4 MI2S Capture",
18540 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018541 SND_SOC_DAPM_AIF_OUT("QUIN_MI2S_RX", "Quinary MI2S Playback",
18542 0, 0, 0, 0),
18543 SND_SOC_DAPM_AIF_IN("PRI_I2S_TX", "Primary I2S Capture", 0, 0, 0, 0),
18544 SND_SOC_DAPM_AIF_IN("MI2S_TX", "MI2S Capture", 0, 0, 0, 0),
18545 SND_SOC_DAPM_AIF_IN("QUAT_MI2S_TX", "Quaternary MI2S Capture",
18546 0, 0, 0, 0),
18547 SND_SOC_DAPM_AIF_IN("PRI_MI2S_TX", "Primary MI2S Capture",
18548 0, 0, 0, 0),
18549 SND_SOC_DAPM_AIF_IN("TERT_MI2S_TX", "Tertiary MI2S Capture",
18550 0, 0, 0, 0),
Laxminath Kasam52697fe2017-11-29 15:44:14 +053018551 SND_SOC_DAPM_AIF_OUT("INT0_MI2S_TX", "INT0 MI2S Capture",
18552 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018553 SND_SOC_DAPM_AIF_IN("INT2_MI2S_TX", "INT2 MI2S Capture",
18554 0, 0, 0, 0),
18555 SND_SOC_DAPM_AIF_IN("INT3_MI2S_TX", "INT3 MI2S Capture",
18556 0, 0, 0, 0),
18557 SND_SOC_DAPM_AIF_IN("SEC_MI2S_TX", "Secondary MI2S Capture",
18558 0, 0, 0, 0),
18559 SND_SOC_DAPM_AIF_IN("SLIMBUS_0_TX", "Slimbus Capture", 0, 0, 0, 0),
18560 SND_SOC_DAPM_AIF_IN("SLIMBUS_2_TX", "Slimbus2 Capture", 0, 0, 0, 0),
18561 SND_SOC_DAPM_AIF_IN("QUIN_MI2S_TX", "Quinary MI2S Capture",
18562 0, 0, 0, 0),
18563 SND_SOC_DAPM_AIF_IN("SENARY_MI2S_TX", "Senary MI2S Capture",
18564 0, 0, 0, 0),
18565 SND_SOC_DAPM_AIF_OUT("INT_BT_SCO_RX", "Internal BT-SCO Playback",
18566 0, 0, 0, 0),
18567 SND_SOC_DAPM_AIF_IN("INT_BT_SCO_TX", "Internal BT-SCO Capture",
18568 0, 0, 0, 0),
18569 SND_SOC_DAPM_AIF_OUT("INT_BT_A2DP_RX", "Internal BT-A2DP Playback",
18570 0, 0, 0, 0),
18571 SND_SOC_DAPM_AIF_OUT("INT_FM_RX", "Internal FM Playback",
18572 0, 0, 0, 0),
18573 SND_SOC_DAPM_AIF_IN("INT_FM_TX", "Internal FM Capture",
18574 0, 0, 0, 0),
18575 SND_SOC_DAPM_AIF_OUT("PCM_RX", "AFE Playback",
18576 0, 0, 0, 0),
18577 SND_SOC_DAPM_AIF_IN("PCM_TX", "AFE Capture",
18578 0, 0, 0, 0),
18579 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_0", "Primary TDM0 Playback",
18580 0, 0, 0, 0),
18581 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_0", "Primary TDM0 Capture",
18582 0, 0, 0, 0),
18583 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_1", "Primary TDM1 Playback",
18584 0, 0, 0, 0),
18585 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_1", "Primary TDM1 Capture",
18586 0, 0, 0, 0),
18587 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_2", "Primary TDM2 Playback",
18588 0, 0, 0, 0),
18589 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_2", "Primary TDM2 Capture",
18590 0, 0, 0, 0),
18591 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_3", "Primary TDM3 Playback",
18592 0, 0, 0, 0),
18593 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_3", "Primary TDM3 Capture",
18594 0, 0, 0, 0),
18595 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_4", "Primary TDM4 Playback",
18596 0, 0, 0, 0),
18597 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_4", "Primary TDM4 Capture",
18598 0, 0, 0, 0),
18599 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_5", "Primary TDM5 Playback",
18600 0, 0, 0, 0),
18601 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_5", "Primary TDM5 Capture",
18602 0, 0, 0, 0),
18603 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_6", "Primary TDM6 Playback",
18604 0, 0, 0, 0),
18605 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_6", "Primary TDM6 Capture",
18606 0, 0, 0, 0),
18607 SND_SOC_DAPM_AIF_OUT("PRI_TDM_RX_7", "Primary TDM7 Playback",
18608 0, 0, 0, 0),
18609 SND_SOC_DAPM_AIF_IN("PRI_TDM_TX_7", "Primary TDM7 Capture",
18610 0, 0, 0, 0),
18611 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_0", "Secondary TDM0 Playback",
18612 0, 0, 0, 0),
18613 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_0", "Secondary TDM0 Capture",
18614 0, 0, 0, 0),
18615 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_1", "Secondary TDM1 Playback",
18616 0, 0, 0, 0),
18617 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_1", "Secondary TDM1 Capture",
18618 0, 0, 0, 0),
18619 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_2", "Secondary TDM2 Playback",
18620 0, 0, 0, 0),
18621 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_2", "Secondary TDM2 Capture",
18622 0, 0, 0, 0),
18623 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_3", "Secondary TDM3 Playback",
18624 0, 0, 0, 0),
18625 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_3", "Secondary TDM3 Capture",
18626 0, 0, 0, 0),
18627 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_4", "Secondary TDM4 Playback",
18628 0, 0, 0, 0),
18629 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_4", "Secondary TDM4 Capture",
18630 0, 0, 0, 0),
18631 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_5", "Secondary TDM5 Playback",
18632 0, 0, 0, 0),
18633 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_5", "Secondary TDM5 Capture",
18634 0, 0, 0, 0),
18635 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_6", "Secondary TDM6 Playback",
18636 0, 0, 0, 0),
18637 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_6", "Secondary TDM6 Capture",
18638 0, 0, 0, 0),
18639 SND_SOC_DAPM_AIF_OUT("SEC_TDM_RX_7", "Secondary TDM7 Playback",
18640 0, 0, 0, 0),
18641 SND_SOC_DAPM_AIF_IN("SEC_TDM_TX_7", "Secondary TDM7 Capture",
18642 0, 0, 0, 0),
18643 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_0", "Tertiary TDM0 Playback",
18644 0, 0, 0, 0),
18645 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_0", "Tertiary TDM0 Capture",
18646 0, 0, 0, 0),
18647 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_1", "Tertiary TDM1 Playback",
18648 0, 0, 0, 0),
18649 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_1", "Tertiary TDM1 Capture",
18650 0, 0, 0, 0),
18651 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_2", "Tertiary TDM2 Playback",
18652 0, 0, 0, 0),
18653 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_2", "Tertiary TDM2 Capture",
18654 0, 0, 0, 0),
18655 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_3", "Tertiary TDM3 Playback",
18656 0, 0, 0, 0),
18657 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_3", "Tertiary TDM3 Capture",
18658 0, 0, 0, 0),
18659 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_4", "Tertiary TDM4 Playback",
18660 0, 0, 0, 0),
18661 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_4", "Tertiary TDM4 Capture",
18662 0, 0, 0, 0),
18663 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_5", "Tertiary TDM5 Playback",
18664 0, 0, 0, 0),
18665 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_5", "Tertiary TDM5 Capture",
18666 0, 0, 0, 0),
18667 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_6", "Tertiary TDM6 Playback",
18668 0, 0, 0, 0),
18669 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_6", "Tertiary TDM6 Capture",
18670 0, 0, 0, 0),
18671 SND_SOC_DAPM_AIF_OUT("TERT_TDM_RX_7", "Tertiary TDM7 Playback",
18672 0, 0, 0, 0),
18673 SND_SOC_DAPM_AIF_IN("TERT_TDM_TX_7", "Tertiary TDM7 Capture",
18674 0, 0, 0, 0),
18675 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_0", "Quaternary TDM0 Playback",
18676 0, 0, 0, 0),
18677 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_0", "Quaternary TDM0 Capture",
18678 0, 0, 0, 0),
18679 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_1", "Quaternary TDM1 Playback",
18680 0, 0, 0, 0),
18681 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_1", "Quaternary TDM1 Capture",
18682 0, 0, 0, 0),
18683 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_2", "Quaternary TDM2 Playback",
18684 0, 0, 0, 0),
18685 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_2", "Quaternary TDM2 Capture",
18686 0, 0, 0, 0),
18687 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_3", "Quaternary TDM3 Playback",
18688 0, 0, 0, 0),
18689 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_3", "Quaternary TDM3 Capture",
18690 0, 0, 0, 0),
18691 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_4", "Quaternary TDM4 Playback",
18692 0, 0, 0, 0),
18693 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_4", "Quaternary TDM4 Capture",
18694 0, 0, 0, 0),
18695 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_5", "Quaternary TDM5 Playback",
18696 0, 0, 0, 0),
18697 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_5", "Quaternary TDM5 Capture",
18698 0, 0, 0, 0),
18699 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_6", "Quaternary TDM6 Playback",
18700 0, 0, 0, 0),
18701 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_6", "Quaternary TDM6 Capture",
18702 0, 0, 0, 0),
18703 SND_SOC_DAPM_AIF_OUT("QUAT_TDM_RX_7", "Quaternary TDM7 Playback",
18704 0, 0, 0, 0),
18705 SND_SOC_DAPM_AIF_IN("QUAT_TDM_TX_7", "Quaternary TDM7 Capture",
18706 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018707 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_0", "Quinary TDM0 Playback",
18708 0, 0, 0, 0),
18709 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_0", "Quinary TDM0 Capture",
18710 0, 0, 0, 0),
18711 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_1", "Quinary TDM1 Playback",
18712 0, 0, 0, 0),
18713 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_1", "Quinary TDM1 Capture",
18714 0, 0, 0, 0),
18715 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_2", "Quinary TDM2 Playback",
18716 0, 0, 0, 0),
18717 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_2", "Quinary TDM2 Capture",
18718 0, 0, 0, 0),
18719 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_3", "Quinary TDM3 Playback",
18720 0, 0, 0, 0),
18721 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_3", "Quinary TDM3 Capture",
18722 0, 0, 0, 0),
18723 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_4", "Quinary TDM4 Playback",
18724 0, 0, 0, 0),
18725 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_4", "Quinary TDM4 Capture",
18726 0, 0, 0, 0),
18727 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_5", "Quinary TDM5 Playback",
18728 0, 0, 0, 0),
18729 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_5", "Quinary TDM5 Capture",
18730 0, 0, 0, 0),
18731 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_6", "Quinary TDM6 Playback",
18732 0, 0, 0, 0),
18733 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_6", "Quinary TDM6 Capture",
18734 0, 0, 0, 0),
18735 SND_SOC_DAPM_AIF_OUT("QUIN_TDM_RX_7", "Quinary TDM7 Playback",
18736 0, 0, 0, 0),
18737 SND_SOC_DAPM_AIF_IN("QUIN_TDM_TX_7", "Quinary TDM7 Capture",
18738 0, 0, 0, 0),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053018739 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_0", "WSA CDC DMA0 Playback",
18740 0, 0, 0, 0),
18741 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_0", "WSA CDC DMA0 Capture",
18742 0, 0, 0, 0),
18743 SND_SOC_DAPM_AIF_OUT("WSA_CDC_DMA_RX_1", "WSA CDC DMA1 Playback",
18744 0, 0, 0, 0),
18745 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_1", "WSA CDC DMA1 Capture",
18746 0, 0, 0, 0),
18747 SND_SOC_DAPM_AIF_IN("WSA_CDC_DMA_TX_2", "WSA CDC DMA2 Capture",
18748 0, 0, 0, 0),
18749 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_0", "VA CDC DMA0 Capture",
18750 0, 0, 0, 0),
18751 SND_SOC_DAPM_AIF_IN("VA_CDC_DMA_TX_1", "VA CDC DMA1 Capture",
18752 0, 0, 0, 0),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053018753 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_0", "RX CDC DMA0 Playback",
18754 0, 0, 0, 0),
18755 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_0", "TX CDC DMA0 Capture",
18756 0, 0, 0, 0),
18757 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_1", "RX CDC DMA1 Playback",
18758 0, 0, 0, 0),
18759 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_1", "TX CDC DMA1 Capture",
18760 0, 0, 0, 0),
18761 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_2", "RX CDC DMA2 Playback",
18762 0, 0, 0, 0),
18763 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_2", "TX CDC DMA2 Capture",
18764 0, 0, 0, 0),
18765 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_3", "RX CDC DMA3 Playback",
18766 0, 0, 0, 0),
18767 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_3", "TX CDC DMA3 Capture",
18768 0, 0, 0, 0),
18769 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_4", "RX CDC DMA4 Playback",
18770 0, 0, 0, 0),
18771 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_4", "TX CDC DMA4 Capture",
18772 0, 0, 0, 0),
18773 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_5", "RX CDC DMA5 Playback",
18774 0, 0, 0, 0),
18775 SND_SOC_DAPM_AIF_IN("TX_CDC_DMA_TX_5", "TX CDC DMA5 Capture",
18776 0, 0, 0, 0),
18777 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_6", "RX CDC DMA6 Playback",
18778 0, 0, 0, 0),
18779 SND_SOC_DAPM_AIF_OUT("RX_CDC_DMA_RX_7", "RX CDC DMA7 Playback",
18780 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018781 /* incall */
18782 SND_SOC_DAPM_AIF_OUT("VOICE_PLAYBACK_TX", "Voice Farend Playback",
18783 0, 0, 0, 0),
18784 SND_SOC_DAPM_AIF_OUT("VOICE2_PLAYBACK_TX", "Voice2 Farend Playback",
18785 0, 0, 0, 0),
18786 SND_SOC_DAPM_AIF_OUT("SLIMBUS_4_RX", "Slimbus4 Playback",
18787 0, 0, 0, 0),
18788 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_TX", "Voice Uplink Capture",
18789 0, 0, 0, 0),
18790 SND_SOC_DAPM_AIF_IN("INCALL_RECORD_RX", "Voice Downlink Capture",
18791 0, 0, 0, 0),
18792 SND_SOC_DAPM_AIF_IN("SLIMBUS_4_TX", "Slimbus4 Capture",
18793 0, 0, 0, 0),
18794 SND_SOC_DAPM_AIF_IN("SENARY_TX", "Senary_mi2s Capture",
18795 0, 0, 0, 0),
18796 SND_SOC_DAPM_AIF_IN("INT5_MI2S_TX", "INT5 MI2S Capture",
18797 0, 0, 0, 0),
18798 SND_SOC_DAPM_AIF_IN("SLIMBUS_5_TX", "Slimbus5 Capture", 0, 0, 0, 0),
18799
18800 SND_SOC_DAPM_AIF_OUT("AUX_PCM_RX", "AUX PCM Playback", 0, 0, 0, 0),
18801 SND_SOC_DAPM_AIF_IN("AUX_PCM_TX", "AUX PCM Capture", 0, 0, 0, 0),
18802 SND_SOC_DAPM_AIF_OUT("SEC_AUX_PCM_RX", "Sec AUX PCM Playback",
18803 0, 0, 0, 0),
18804 SND_SOC_DAPM_AIF_IN("SEC_AUX_PCM_TX", "Sec AUX PCM Capture",
18805 0, 0, 0, 0),
18806 SND_SOC_DAPM_AIF_OUT("TERT_AUX_PCM_RX", "Tert AUX PCM Playback",
18807 0, 0, 0, 0),
18808 SND_SOC_DAPM_AIF_IN("TERT_AUX_PCM_TX", "Tert AUX PCM Capture",
18809 0, 0, 0, 0),
18810 SND_SOC_DAPM_AIF_OUT("QUAT_AUX_PCM_RX", "Quat AUX PCM Playback",
18811 0, 0, 0, 0),
18812 SND_SOC_DAPM_AIF_IN("QUAT_AUX_PCM_TX", "Quat AUX PCM Capture",
18813 0, 0, 0, 0),
Rohit Kumara5077932017-09-10 22:05:05 +053018814 SND_SOC_DAPM_AIF_OUT("QUIN_AUX_PCM_RX", "Quin AUX PCM Playback",
18815 0, 0, 0, 0),
18816 SND_SOC_DAPM_AIF_IN("QUIN_AUX_PCM_TX", "Quin AUX PCM Capture",
18817 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018818 SND_SOC_DAPM_AIF_IN("VOICE_STUB_DL", "VOICE_STUB Playback", 0, 0, 0, 0),
18819 SND_SOC_DAPM_AIF_OUT("VOICE_STUB_UL", "VOICE_STUB Capture", 0, 0, 0, 0),
18820 SND_SOC_DAPM_AIF_IN("VOICE2_STUB_DL", "VOICE2_STUB Playback",
18821 0, 0, 0, 0),
18822 SND_SOC_DAPM_AIF_OUT("VOICE2_STUB_UL", "VOICE2_STUB Capture",
18823 0, 0, 0, 0),
18824 SND_SOC_DAPM_AIF_IN("VOLTE_STUB_DL", "VOLTE_STUB Playback", 0, 0, 0, 0),
18825 SND_SOC_DAPM_AIF_OUT("VOLTE_STUB_UL", "VOLTE_STUB Capture", 0, 0, 0, 0),
18826 SND_SOC_DAPM_AIF_OUT("STUB_RX", "Stub Playback", 0, 0, 0, 0),
18827 SND_SOC_DAPM_AIF_IN("STUB_TX", "Stub Capture", 0, 0, 0, 0),
18828 SND_SOC_DAPM_AIF_OUT("SLIMBUS_1_RX", "Slimbus1 Playback", 0, 0, 0, 0),
18829 SND_SOC_DAPM_AIF_IN("SLIMBUS_1_TX", "Slimbus1 Capture", 0, 0, 0, 0),
18830 SND_SOC_DAPM_AIF_IN("STUB_1_TX", "Stub1 Capture", 0, 0, 0, 0),
18831 SND_SOC_DAPM_AIF_OUT("SLIMBUS_3_RX", "Slimbus3 Playback", 0, 0, 0, 0),
18832 SND_SOC_DAPM_AIF_IN("SLIMBUS_3_TX", "Slimbus3 Capture", 0, 0, 0, 0),
18833 /* In- call recording */
18834 SND_SOC_DAPM_AIF_OUT("SLIMBUS_6_RX", "Slimbus6 Playback", 0, 0, 0, 0),
18835 SND_SOC_DAPM_AIF_IN("SLIMBUS_6_TX", "Slimbus6 Capture", 0, 0, 0, 0),
18836
18837 SND_SOC_DAPM_AIF_OUT("SLIMBUS_7_RX", "Slimbus7 Playback", 0, 0, 0, 0),
18838 SND_SOC_DAPM_AIF_IN("SLIMBUS_7_TX", "Slimbus7 Capture", 0, 0, 0, 0),
18839
18840 SND_SOC_DAPM_AIF_OUT("SLIMBUS_8_RX", "Slimbus8 Playback", 0, 0, 0, 0),
18841 SND_SOC_DAPM_AIF_IN("SLIMBUS_8_TX", "Slimbus8 Capture", 0, 0, 0, 0),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018842 SND_SOC_DAPM_AIF_OUT("SLIMBUS_9_RX", "Slimbus9 Playback", 0, 0, 0, 0),
18843 SND_SOC_DAPM_AIF_IN("SLIMBUS_9_TX", "Slimbus9 Capture", 0, 0, 0, 0),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018844 SND_SOC_DAPM_AIF_OUT("USB_AUDIO_RX", "USB Audio Playback", 0, 0, 0, 0),
18845 SND_SOC_DAPM_AIF_IN("USB_AUDIO_TX", "USB Audio Capture", 0, 0, 0, 0),
18846
18847 /* Switch Definitions */
18848 SND_SOC_DAPM_SWITCH("SLIMBUS_DL_HL", SND_SOC_NOPM, 0, 0,
18849 &slim_fm_switch_mixer_controls),
18850 SND_SOC_DAPM_SWITCH("SLIMBUS1_DL_HL", SND_SOC_NOPM, 0, 0,
18851 &slim1_fm_switch_mixer_controls),
18852 SND_SOC_DAPM_SWITCH("SLIMBUS3_DL_HL", SND_SOC_NOPM, 0, 0,
18853 &slim3_fm_switch_mixer_controls),
18854 SND_SOC_DAPM_SWITCH("SLIMBUS4_DL_HL", SND_SOC_NOPM, 0, 0,
18855 &slim4_fm_switch_mixer_controls),
18856 SND_SOC_DAPM_SWITCH("SLIMBUS6_DL_HL", SND_SOC_NOPM, 0, 0,
18857 &slim6_fm_switch_mixer_controls),
18858 SND_SOC_DAPM_SWITCH("PCM_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18859 &pcm_rx_switch_mixer_controls),
18860 SND_SOC_DAPM_SWITCH("INT0_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18861 &int0_mi2s_rx_switch_mixer_controls),
18862 SND_SOC_DAPM_SWITCH("INT4_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18863 &int4_mi2s_rx_switch_mixer_controls),
18864 SND_SOC_DAPM_SWITCH("PRI_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18865 &pri_mi2s_rx_switch_mixer_controls),
18866 SND_SOC_DAPM_SWITCH("SEC_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18867 &sec_mi2s_rx_switch_mixer_controls),
18868 SND_SOC_DAPM_SWITCH("TERT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18869 &tert_mi2s_rx_switch_mixer_controls),
18870 SND_SOC_DAPM_SWITCH("QUAT_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18871 &quat_mi2s_rx_switch_mixer_controls),
Rohit Kumara5077932017-09-10 22:05:05 +053018872 SND_SOC_DAPM_SWITCH("QUIN_MI2S_RX_DL_HL", SND_SOC_NOPM, 0, 0,
18873 &quin_mi2s_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018874 SND_SOC_DAPM_SWITCH("HFP_PRI_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18875 &hfp_pri_aux_switch_mixer_controls),
18876 SND_SOC_DAPM_SWITCH("HFP_AUX_UL_HL", SND_SOC_NOPM, 0, 0,
18877 &hfp_aux_switch_mixer_controls),
18878 SND_SOC_DAPM_SWITCH("HFP_INT_UL_HL", SND_SOC_NOPM, 0, 0,
18879 &hfp_int_switch_mixer_controls),
18880 SND_SOC_DAPM_SWITCH("HFP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18881 &hfp_slim7_switch_mixer_controls),
18882 SND_SOC_DAPM_SWITCH("USB_DL_HL", SND_SOC_NOPM, 0, 0,
18883 &usb_switch_mixer_controls),
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080018884 SND_SOC_DAPM_SWITCH("A2DP_SLIM7_UL_HL", SND_SOC_NOPM, 0, 0,
18885 &a2dp_slim7_switch_mixer_controls),
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053018886 SND_SOC_DAPM_SWITCH("WSA_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018887 &cdc_dma_wsa_switch_mixer_controls),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053018888 SND_SOC_DAPM_SWITCH("RX_CDC_DMA_RX_0_DL_HL", SND_SOC_NOPM, 0, 0,
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053018889 &cdc_dma_rx_switch_mixer_controls),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018890
18891 /* Mixer definitions */
18892 SND_SOC_DAPM_MIXER("PRI_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18893 pri_i2s_rx_mixer_controls, ARRAY_SIZE(pri_i2s_rx_mixer_controls)),
18894 SND_SOC_DAPM_MIXER("SEC_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18895 sec_i2s_rx_mixer_controls, ARRAY_SIZE(sec_i2s_rx_mixer_controls)),
18896 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18897 slimbus_rx_mixer_controls, ARRAY_SIZE(slimbus_rx_mixer_controls)),
18898 SND_SOC_DAPM_MIXER("SLIMBUS_2_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18899 slimbus_2_rx_mixer_controls, ARRAY_SIZE(slimbus_2_rx_mixer_controls)),
18900 SND_SOC_DAPM_MIXER("SLIMBUS_5_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18901 slimbus_5_rx_mixer_controls, ARRAY_SIZE(slimbus_5_rx_mixer_controls)),
18902 SND_SOC_DAPM_MIXER("SLIMBUS_7_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18903 slimbus_7_rx_mixer_controls, ARRAY_SIZE(slimbus_7_rx_mixer_controls)),
Surendar Karka3ef3d812018-09-28 18:52:35 +053018904 SND_SOC_DAPM_MIXER("SLIMBUS_9_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18905 slimbus_9_rx_mixer_controls, ARRAY_SIZE(slimbus_9_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018906 SND_SOC_DAPM_MIXER("HDMI Mixer", SND_SOC_NOPM, 0, 0,
18907 hdmi_mixer_controls, ARRAY_SIZE(hdmi_mixer_controls)),
18908 SND_SOC_DAPM_MIXER("DISPLAY_PORT Mixer", SND_SOC_NOPM, 0, 0,
18909 display_port_mixer_controls, ARRAY_SIZE(display_port_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070018910 SND_SOC_DAPM_MIXER("DISPLAY_PORT1 Mixer", SND_SOC_NOPM, 0, 0,
18911 display_port1_mixer_controls, ARRAY_SIZE(display_port1_mixer_controls)),
Ralf Herzc8701f72018-06-20 11:37:35 +020018912 SND_SOC_DAPM_MIXER("PRI_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18913 pri_spdif_rx_mixer_controls, ARRAY_SIZE(pri_spdif_rx_mixer_controls)),
18914 SND_SOC_DAPM_MIXER("SEC_SPDIF_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18915 sec_spdif_rx_mixer_controls, ARRAY_SIZE(sec_spdif_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053018916 SND_SOC_DAPM_MIXER("MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18917 mi2s_rx_mixer_controls, ARRAY_SIZE(mi2s_rx_mixer_controls)),
18918 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18919 quaternary_mi2s_rx_mixer_controls,
18920 ARRAY_SIZE(quaternary_mi2s_rx_mixer_controls)),
18921 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18922 tertiary_mi2s_rx_mixer_controls,
18923 ARRAY_SIZE(tertiary_mi2s_rx_mixer_controls)),
18924 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18925 secondary_mi2s_rx_mixer_controls,
18926 ARRAY_SIZE(secondary_mi2s_rx_mixer_controls)),
18927 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_SD1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18928 secondary_mi2s_rx2_mixer_controls,
18929 ARRAY_SIZE(secondary_mi2s_rx2_mixer_controls)),
18930 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18931 primary_mi2s_rx_mixer_controls,
18932 ARRAY_SIZE(primary_mi2s_rx_mixer_controls)),
18933 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18934 int0_mi2s_rx_mixer_controls,
18935 ARRAY_SIZE(int0_mi2s_rx_mixer_controls)),
18936 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18937 int4_mi2s_rx_mixer_controls,
18938 ARRAY_SIZE(int4_mi2s_rx_mixer_controls)),
18939 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
18940 quinary_mi2s_rx_mixer_controls,
18941 ARRAY_SIZE(quinary_mi2s_rx_mixer_controls)),
18942 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18943 pri_tdm_rx_0_mixer_controls,
18944 ARRAY_SIZE(pri_tdm_rx_0_mixer_controls)),
18945 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18946 pri_tdm_rx_1_mixer_controls,
18947 ARRAY_SIZE(pri_tdm_rx_1_mixer_controls)),
18948 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18949 pri_tdm_rx_2_mixer_controls,
18950 ARRAY_SIZE(pri_tdm_rx_2_mixer_controls)),
18951 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18952 pri_tdm_rx_3_mixer_controls,
18953 ARRAY_SIZE(pri_tdm_rx_3_mixer_controls)),
18954 SND_SOC_DAPM_MIXER("PRI_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18955 pri_tdm_tx_0_mixer_controls,
18956 ARRAY_SIZE(pri_tdm_tx_0_mixer_controls)),
18957 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18958 sec_tdm_rx_0_mixer_controls,
18959 ARRAY_SIZE(sec_tdm_rx_0_mixer_controls)),
18960 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18961 sec_tdm_rx_1_mixer_controls,
18962 ARRAY_SIZE(sec_tdm_rx_1_mixer_controls)),
18963 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18964 sec_tdm_rx_2_mixer_controls,
18965 ARRAY_SIZE(sec_tdm_rx_2_mixer_controls)),
18966 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18967 sec_tdm_rx_3_mixer_controls,
18968 ARRAY_SIZE(sec_tdm_rx_3_mixer_controls)),
18969 SND_SOC_DAPM_MIXER("SEC_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18970 sec_tdm_tx_0_mixer_controls,
18971 ARRAY_SIZE(sec_tdm_tx_0_mixer_controls)),
18972 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18973 tert_tdm_rx_0_mixer_controls,
18974 ARRAY_SIZE(tert_tdm_rx_0_mixer_controls)),
18975 SND_SOC_DAPM_MIXER("TERT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18976 tert_tdm_tx_0_mixer_controls,
18977 ARRAY_SIZE(tert_tdm_tx_0_mixer_controls)),
18978 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18979 tert_tdm_rx_1_mixer_controls,
18980 ARRAY_SIZE(tert_tdm_rx_1_mixer_controls)),
18981 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
18982 tert_tdm_rx_2_mixer_controls,
18983 ARRAY_SIZE(tert_tdm_rx_2_mixer_controls)),
18984 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
18985 tert_tdm_rx_3_mixer_controls,
18986 ARRAY_SIZE(tert_tdm_rx_3_mixer_controls)),
18987 SND_SOC_DAPM_MIXER("TERT_TDM_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
18988 tert_tdm_rx_4_mixer_controls,
18989 ARRAY_SIZE(tert_tdm_rx_4_mixer_controls)),
18990 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18991 quat_tdm_rx_0_mixer_controls,
18992 ARRAY_SIZE(quat_tdm_rx_0_mixer_controls)),
18993 SND_SOC_DAPM_MIXER("QUAT_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
18994 quat_tdm_tx_0_mixer_controls,
18995 ARRAY_SIZE(quat_tdm_tx_0_mixer_controls)),
18996 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
18997 quat_tdm_rx_1_mixer_controls,
18998 ARRAY_SIZE(quat_tdm_rx_1_mixer_controls)),
18999 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19000 quat_tdm_rx_2_mixer_controls,
19001 ARRAY_SIZE(quat_tdm_rx_2_mixer_controls)),
19002 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19003 quat_tdm_rx_3_mixer_controls,
19004 ARRAY_SIZE(quat_tdm_rx_3_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019005 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19006 quin_tdm_rx_0_mixer_controls,
19007 ARRAY_SIZE(quin_tdm_rx_0_mixer_controls)),
19008 SND_SOC_DAPM_MIXER("QUIN_TDM_TX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19009 quin_tdm_tx_0_mixer_controls,
19010 ARRAY_SIZE(quin_tdm_tx_0_mixer_controls)),
19011 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19012 quin_tdm_rx_1_mixer_controls,
19013 ARRAY_SIZE(quin_tdm_rx_1_mixer_controls)),
19014 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19015 quin_tdm_rx_2_mixer_controls,
19016 ARRAY_SIZE(quin_tdm_rx_2_mixer_controls)),
19017 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19018 quin_tdm_rx_3_mixer_controls,
19019 ARRAY_SIZE(quin_tdm_rx_3_mixer_controls)),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019020 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19021 wsa_cdc_dma_rx_0_mixer_controls,
19022 ARRAY_SIZE(wsa_cdc_dma_rx_0_mixer_controls)),
19023 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19024 wsa_cdc_dma_rx_1_mixer_controls,
19025 ARRAY_SIZE(wsa_cdc_dma_rx_1_mixer_controls)),
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019026 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Audio Mixer", SND_SOC_NOPM, 0, 0,
19027 rx_cdc_dma_rx_0_mixer_controls,
19028 ARRAY_SIZE(rx_cdc_dma_rx_0_mixer_controls)),
19029 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_1 Audio Mixer", SND_SOC_NOPM, 0, 0,
19030 rx_cdc_dma_rx_1_mixer_controls,
19031 ARRAY_SIZE(rx_cdc_dma_rx_1_mixer_controls)),
19032 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19033 rx_cdc_dma_rx_2_mixer_controls,
19034 ARRAY_SIZE(rx_cdc_dma_rx_2_mixer_controls)),
19035 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_3 Audio Mixer", SND_SOC_NOPM, 0, 0,
19036 rx_cdc_dma_rx_3_mixer_controls,
19037 ARRAY_SIZE(rx_cdc_dma_rx_3_mixer_controls)),
19038 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_4 Audio Mixer", SND_SOC_NOPM, 0, 0,
19039 rx_cdc_dma_rx_4_mixer_controls,
19040 ARRAY_SIZE(rx_cdc_dma_rx_4_mixer_controls)),
19041 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_5 Audio Mixer", SND_SOC_NOPM, 0, 0,
19042 rx_cdc_dma_rx_5_mixer_controls,
19043 ARRAY_SIZE(rx_cdc_dma_rx_5_mixer_controls)),
19044 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_6 Audio Mixer", SND_SOC_NOPM, 0, 0,
19045 rx_cdc_dma_rx_6_mixer_controls,
19046 ARRAY_SIZE(rx_cdc_dma_rx_6_mixer_controls)),
19047 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_7 Audio Mixer", SND_SOC_NOPM, 0, 0,
19048 rx_cdc_dma_rx_7_mixer_controls,
19049 ARRAY_SIZE(rx_cdc_dma_rx_7_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019050 SND_SOC_DAPM_MIXER("MultiMedia1 Mixer", SND_SOC_NOPM, 0, 0,
19051 mmul1_mixer_controls, ARRAY_SIZE(mmul1_mixer_controls)),
19052 SND_SOC_DAPM_MIXER("MultiMedia2 Mixer", SND_SOC_NOPM, 0, 0,
19053 mmul2_mixer_controls, ARRAY_SIZE(mmul2_mixer_controls)),
19054 SND_SOC_DAPM_MIXER("MultiMedia3 Mixer", SND_SOC_NOPM, 0, 0,
19055 mmul3_mixer_controls, ARRAY_SIZE(mmul3_mixer_controls)),
19056 SND_SOC_DAPM_MIXER("MultiMedia4 Mixer", SND_SOC_NOPM, 0, 0,
19057 mmul4_mixer_controls, ARRAY_SIZE(mmul4_mixer_controls)),
19058 SND_SOC_DAPM_MIXER("MultiMedia5 Mixer", SND_SOC_NOPM, 0, 0,
19059 mmul5_mixer_controls, ARRAY_SIZE(mmul5_mixer_controls)),
19060 SND_SOC_DAPM_MIXER("MultiMedia6 Mixer", SND_SOC_NOPM, 0, 0,
19061 mmul6_mixer_controls, ARRAY_SIZE(mmul6_mixer_controls)),
19062 SND_SOC_DAPM_MIXER("MultiMedia8 Mixer", SND_SOC_NOPM, 0, 0,
19063 mmul8_mixer_controls, ARRAY_SIZE(mmul8_mixer_controls)),
19064 SND_SOC_DAPM_MIXER("MultiMedia9 Mixer", SND_SOC_NOPM, 0, 0,
19065 mmul9_mixer_controls, ARRAY_SIZE(mmul9_mixer_controls)),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019066 SND_SOC_DAPM_MIXER("MultiMedia10 Mixer", SND_SOC_NOPM, 0, 0,
19067 mmul10_mixer_controls, ARRAY_SIZE(mmul10_mixer_controls)),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019068 SND_SOC_DAPM_MIXER("MultiMedia16 Mixer", SND_SOC_NOPM, 0, 0,
19069 mmul16_mixer_controls, ARRAY_SIZE(mmul16_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019070 SND_SOC_DAPM_MIXER("MultiMedia17 Mixer", SND_SOC_NOPM, 0, 0,
19071 mmul17_mixer_controls, ARRAY_SIZE(mmul17_mixer_controls)),
19072 SND_SOC_DAPM_MIXER("MultiMedia18 Mixer", SND_SOC_NOPM, 0, 0,
19073 mmul18_mixer_controls, ARRAY_SIZE(mmul18_mixer_controls)),
19074 SND_SOC_DAPM_MIXER("MultiMedia19 Mixer", SND_SOC_NOPM, 0, 0,
19075 mmul19_mixer_controls, ARRAY_SIZE(mmul19_mixer_controls)),
19076 SND_SOC_DAPM_MIXER("MultiMedia20 Mixer", SND_SOC_NOPM, 0, 0,
19077 mmul20_mixer_controls, ARRAY_SIZE(mmul20_mixer_controls)),
Derek Chen07c6d1c2018-07-05 10:39:25 -070019078 SND_SOC_DAPM_MIXER("MultiMedia21 Mixer", SND_SOC_NOPM, 0, 0,
19079 mmul21_mixer_controls, ARRAY_SIZE(mmul21_mixer_controls)),
Surendar Karkac1cde372018-08-14 18:56:24 +053019080 SND_SOC_DAPM_MIXER("MultiMedia27 Mixer", SND_SOC_NOPM, 0, 0,
19081 mmul27_mixer_controls, ARRAY_SIZE(mmul27_mixer_controls)),
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019082 SND_SOC_DAPM_MIXER("MultiMedia28 Mixer", SND_SOC_NOPM, 0, 0,
19083 mmul28_mixer_controls, ARRAY_SIZE(mmul28_mixer_controls)),
19084 SND_SOC_DAPM_MIXER("MultiMedia29 Mixer", SND_SOC_NOPM, 0, 0,
19085 mmul29_mixer_controls, ARRAY_SIZE(mmul29_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019086 SND_SOC_DAPM_MIXER("AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19087 auxpcm_rx_mixer_controls, ARRAY_SIZE(auxpcm_rx_mixer_controls)),
19088 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19089 sec_auxpcm_rx_mixer_controls, ARRAY_SIZE(sec_auxpcm_rx_mixer_controls)),
19090 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19091 tert_auxpcm_rx_mixer_controls,
19092 ARRAY_SIZE(tert_auxpcm_rx_mixer_controls)),
19093 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19094 quat_auxpcm_rx_mixer_controls,
19095 ARRAY_SIZE(quat_auxpcm_rx_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019096 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19097 quin_auxpcm_rx_mixer_controls,
19098 ARRAY_SIZE(quin_auxpcm_rx_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019099 /* incall */
19100 SND_SOC_DAPM_MIXER("Incall_Music Audio Mixer", SND_SOC_NOPM, 0, 0,
19101 incall_music_delivery_mixer_controls,
19102 ARRAY_SIZE(incall_music_delivery_mixer_controls)),
19103 SND_SOC_DAPM_MIXER("Incall_Music_2 Audio Mixer", SND_SOC_NOPM, 0, 0,
19104 incall_music2_delivery_mixer_controls,
19105 ARRAY_SIZE(incall_music2_delivery_mixer_controls)),
19106 SND_SOC_DAPM_MIXER("SLIMBUS_4_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19107 slimbus_4_rx_mixer_controls,
19108 ARRAY_SIZE(slimbus_4_rx_mixer_controls)),
19109 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19110 slimbus_6_rx_mixer_controls,
19111 ARRAY_SIZE(slimbus_6_rx_mixer_controls)),
19112 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19113 usb_audio_rx_mixer_controls,
19114 ARRAY_SIZE(usb_audio_rx_mixer_controls)),
19115 /* Voice Mixer */
19116 SND_SOC_DAPM_MIXER("PRI_RX_Voice Mixer",
19117 SND_SOC_NOPM, 0, 0, pri_rx_voice_mixer_controls,
19118 ARRAY_SIZE(pri_rx_voice_mixer_controls)),
19119 SND_SOC_DAPM_MIXER("SEC_RX_Voice Mixer",
19120 SND_SOC_NOPM, 0, 0,
19121 sec_i2s_rx_voice_mixer_controls,
19122 ARRAY_SIZE(sec_i2s_rx_voice_mixer_controls)),
19123 SND_SOC_DAPM_MIXER("SEC_MI2S_RX_Voice Mixer",
19124 SND_SOC_NOPM, 0, 0,
19125 sec_mi2s_rx_voice_mixer_controls,
19126 ARRAY_SIZE(sec_mi2s_rx_voice_mixer_controls)),
19127 SND_SOC_DAPM_MIXER("SLIM_0_RX_Voice Mixer",
19128 SND_SOC_NOPM, 0, 0,
19129 slimbus_rx_voice_mixer_controls,
19130 ARRAY_SIZE(slimbus_rx_voice_mixer_controls)),
19131 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX_Voice Mixer",
19132 SND_SOC_NOPM, 0, 0,
19133 bt_sco_rx_voice_mixer_controls,
19134 ARRAY_SIZE(bt_sco_rx_voice_mixer_controls)),
19135 SND_SOC_DAPM_MIXER("AFE_PCM_RX_Voice Mixer",
19136 SND_SOC_NOPM, 0, 0,
19137 afe_pcm_rx_voice_mixer_controls,
19138 ARRAY_SIZE(afe_pcm_rx_voice_mixer_controls)),
19139 SND_SOC_DAPM_MIXER("AUX_PCM_RX_Voice Mixer",
19140 SND_SOC_NOPM, 0, 0,
19141 aux_pcm_rx_voice_mixer_controls,
19142 ARRAY_SIZE(aux_pcm_rx_voice_mixer_controls)),
19143 SND_SOC_DAPM_MIXER("SEC_AUX_PCM_RX_Voice Mixer",
19144 SND_SOC_NOPM, 0, 0,
19145 sec_aux_pcm_rx_voice_mixer_controls,
19146 ARRAY_SIZE(sec_aux_pcm_rx_voice_mixer_controls)),
19147 SND_SOC_DAPM_MIXER("TERT_AUX_PCM_RX_Voice Mixer",
19148 SND_SOC_NOPM, 0, 0,
19149 tert_aux_pcm_rx_voice_mixer_controls,
19150 ARRAY_SIZE(tert_aux_pcm_rx_voice_mixer_controls)),
19151 SND_SOC_DAPM_MIXER("QUAT_AUX_PCM_RX_Voice Mixer",
19152 SND_SOC_NOPM, 0, 0,
19153 quat_aux_pcm_rx_voice_mixer_controls,
19154 ARRAY_SIZE(quat_aux_pcm_rx_voice_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019155 SND_SOC_DAPM_MIXER("QUIN_AUX_PCM_RX_Voice Mixer",
19156 SND_SOC_NOPM, 0, 0,
19157 quin_aux_pcm_rx_voice_mixer_controls,
19158 ARRAY_SIZE(quin_aux_pcm_rx_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019159 SND_SOC_DAPM_MIXER("HDMI_RX_Voice Mixer",
19160 SND_SOC_NOPM, 0, 0,
19161 hdmi_rx_voice_mixer_controls,
19162 ARRAY_SIZE(hdmi_rx_voice_mixer_controls)),
19163 SND_SOC_DAPM_MIXER("MI2S_RX_Voice Mixer",
19164 SND_SOC_NOPM, 0, 0,
19165 mi2s_rx_voice_mixer_controls,
19166 ARRAY_SIZE(mi2s_rx_voice_mixer_controls)),
19167 SND_SOC_DAPM_MIXER("PRI_MI2S_RX_Voice Mixer",
19168 SND_SOC_NOPM, 0, 0,
19169 pri_mi2s_rx_voice_mixer_controls,
19170 ARRAY_SIZE(pri_mi2s_rx_voice_mixer_controls)),
19171 SND_SOC_DAPM_MIXER("INT0_MI2S_RX_Voice Mixer",
19172 SND_SOC_NOPM, 0, 0,
19173 int0_mi2s_rx_voice_mixer_controls,
19174 ARRAY_SIZE(int0_mi2s_rx_voice_mixer_controls)),
19175 SND_SOC_DAPM_MIXER("INT4_MI2S_RX_Voice Mixer",
19176 SND_SOC_NOPM, 0, 0,
19177 int4_mi2s_rx_voice_mixer_controls,
19178 ARRAY_SIZE(int4_mi2s_rx_voice_mixer_controls)),
19179 SND_SOC_DAPM_MIXER("TERT_MI2S_RX_Voice Mixer",
19180 SND_SOC_NOPM, 0, 0,
19181 tert_mi2s_rx_voice_mixer_controls,
19182 ARRAY_SIZE(tert_mi2s_rx_voice_mixer_controls)),
19183 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX_Voice Mixer",
19184 SND_SOC_NOPM, 0, 0,
19185 quat_mi2s_rx_voice_mixer_controls,
19186 ARRAY_SIZE(quat_mi2s_rx_voice_mixer_controls)),
19187 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX_Voice Mixer",
19188 SND_SOC_NOPM, 0, 0,
19189 quin_mi2s_rx_voice_mixer_controls,
19190 ARRAY_SIZE(quin_mi2s_rx_voice_mixer_controls)),
19191 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2_Voice Mixer",
19192 SND_SOC_NOPM, 0, 0,
19193 quat_tdm_rx_2_voice_mixer_controls,
19194 ARRAY_SIZE(quat_tdm_rx_2_voice_mixer_controls)),
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053019195 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0_Voice Mixer",
19196 SND_SOC_NOPM, 0, 0,
19197 wsa_cdc_dma_rx_0_voice_mixer_controls,
19198 ARRAY_SIZE(wsa_cdc_dma_rx_0_voice_mixer_controls)),
19199 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0_Voice Mixer",
19200 SND_SOC_NOPM, 0, 0,
19201 rx_cdc_dma_rx_0_voice_mixer_controls,
19202 ARRAY_SIZE(rx_cdc_dma_rx_0_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019203 SND_SOC_DAPM_MIXER("Voip_Tx Mixer",
19204 SND_SOC_NOPM, 0, 0, tx_voip_mixer_controls,
19205 ARRAY_SIZE(tx_voip_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019206 SND_SOC_DAPM_MIXER("VoiceMMode1_Tx Mixer",
19207 SND_SOC_NOPM, 0, 0, tx_voicemmode1_mixer_controls,
19208 ARRAY_SIZE(tx_voicemmode1_mixer_controls)),
19209 SND_SOC_DAPM_MIXER("VoiceMMode2_Tx Mixer",
19210 SND_SOC_NOPM, 0, 0, tx_voicemmode2_mixer_controls,
19211 ARRAY_SIZE(tx_voicemmode2_mixer_controls)),
19212 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19213 int_bt_sco_rx_mixer_controls, ARRAY_SIZE(int_bt_sco_rx_mixer_controls)),
19214 SND_SOC_DAPM_MIXER("INTERNAL_A2DP_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19215 int_bt_a2dp_rx_mixer_controls,
19216 ARRAY_SIZE(int_bt_a2dp_rx_mixer_controls)),
19217 SND_SOC_DAPM_MIXER("INTERNAL_FM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19218 int_fm_rx_mixer_controls, ARRAY_SIZE(int_fm_rx_mixer_controls)),
19219 SND_SOC_DAPM_MIXER("AFE_PCM_RX Audio Mixer", SND_SOC_NOPM, 0, 0,
19220 afe_pcm_rx_mixer_controls, ARRAY_SIZE(afe_pcm_rx_mixer_controls)),
19221 SND_SOC_DAPM_MIXER("Voice Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19222 tx_voice_stub_mixer_controls, ARRAY_SIZE(tx_voice_stub_mixer_controls)),
19223 SND_SOC_DAPM_MIXER("Voice2 Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19224 tx_voice2_stub_mixer_controls,
19225 ARRAY_SIZE(tx_voice2_stub_mixer_controls)),
19226 SND_SOC_DAPM_MIXER("VoLTE Stub Tx Mixer", SND_SOC_NOPM, 0, 0,
19227 tx_volte_stub_mixer_controls, ARRAY_SIZE(tx_volte_stub_mixer_controls)),
19228 SND_SOC_DAPM_MIXER("STUB_RX Mixer", SND_SOC_NOPM, 0, 0,
19229 stub_rx_mixer_controls, ARRAY_SIZE(stub_rx_mixer_controls)),
19230 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Mixer", SND_SOC_NOPM, 0, 0,
19231 slimbus_1_rx_mixer_controls, ARRAY_SIZE(slimbus_1_rx_mixer_controls)),
19232 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19233 slimbus_3_rx_mixer_controls, ARRAY_SIZE(slimbus_3_rx_mixer_controls)),
19234 SND_SOC_DAPM_MIXER("SLIM_6_RX_Voice Mixer",
19235 SND_SOC_NOPM, 0, 0,
19236 slimbus_6_rx_voice_mixer_controls,
19237 ARRAY_SIZE(slimbus_6_rx_voice_mixer_controls)),
19238 SND_SOC_DAPM_MIXER("SLIM_7_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19239 slimbus_7_rx_voice_mixer_controls,
19240 ARRAY_SIZE(slimbus_7_rx_voice_mixer_controls)),
19241 SND_SOC_DAPM_MIXER("SLIM_8_RX_Voice Mixer", SND_SOC_NOPM, 0, 0,
19242 slimbus_8_rx_voice_mixer_controls,
19243 ARRAY_SIZE(slimbus_8_rx_voice_mixer_controls)),
19244 /* port mixer */
19245 SND_SOC_DAPM_MIXER("SLIMBUS_0_RX Port Mixer",
19246 SND_SOC_NOPM, 0, 0, sbus_0_rx_port_mixer_controls,
19247 ARRAY_SIZE(sbus_0_rx_port_mixer_controls)),
19248 SND_SOC_DAPM_MIXER("AUX_PCM_RX Port Mixer",
19249 SND_SOC_NOPM, 0, 0, aux_pcm_rx_port_mixer_controls,
19250 ARRAY_SIZE(aux_pcm_rx_port_mixer_controls)),
19251 SND_SOC_DAPM_MIXER("SEC_AUXPCM_RX Port Mixer",
19252 SND_SOC_NOPM, 0, 0, sec_auxpcm_rx_port_mixer_controls,
19253 ARRAY_SIZE(sec_auxpcm_rx_port_mixer_controls)),
19254 SND_SOC_DAPM_MIXER("TERT_AUXPCM_RX Port Mixer",
19255 SND_SOC_NOPM, 0, 0, tert_auxpcm_rx_port_mixer_controls,
19256 ARRAY_SIZE(tert_auxpcm_rx_port_mixer_controls)),
19257 SND_SOC_DAPM_MIXER("QUAT_AUXPCM_RX Port Mixer",
19258 SND_SOC_NOPM, 0, 0, quat_auxpcm_rx_port_mixer_controls,
19259 ARRAY_SIZE(quat_auxpcm_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019260 SND_SOC_DAPM_MIXER("QUIN_AUXPCM_RX Port Mixer",
19261 SND_SOC_NOPM, 0, 0, quin_auxpcm_rx_port_mixer_controls,
19262 ARRAY_SIZE(quin_auxpcm_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019263 SND_SOC_DAPM_MIXER("SLIMBUS_1_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19264 sbus_1_rx_port_mixer_controls,
19265 ARRAY_SIZE(sbus_1_rx_port_mixer_controls)),
19266 SND_SOC_DAPM_MIXER("INTERNAL_BT_SCO_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19267 bt_sco_rx_port_mixer_controls,
19268 ARRAY_SIZE(bt_sco_rx_port_mixer_controls)),
19269 SND_SOC_DAPM_MIXER("AFE_PCM_RX Port Mixer",
19270 SND_SOC_NOPM, 0, 0, afe_pcm_rx_port_mixer_controls,
19271 ARRAY_SIZE(afe_pcm_rx_port_mixer_controls)),
19272 SND_SOC_DAPM_MIXER("HDMI_RX Port Mixer",
19273 SND_SOC_NOPM, 0, 0, hdmi_rx_port_mixer_controls,
19274 ARRAY_SIZE(hdmi_rx_port_mixer_controls)),
19275 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX Port Mixer",
19276 SND_SOC_NOPM, 0, 0, display_port_rx_port_mixer_controls,
19277 ARRAY_SIZE(display_port_rx_port_mixer_controls)),
Karthikeyan Manifbea92f2018-06-14 16:38:15 -070019278 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1 Port Mixer",
Karthikeyan Mani57550082018-05-03 18:43:58 -070019279 SND_SOC_NOPM, 0, 0, display_port_rx1_port_mixer_controls,
19280 ARRAY_SIZE(display_port_rx1_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019281 SND_SOC_DAPM_MIXER("SEC_I2S_RX Port Mixer",
19282 SND_SOC_NOPM, 0, 0, sec_i2s_rx_port_mixer_controls,
19283 ARRAY_SIZE(sec_i2s_rx_port_mixer_controls)),
19284 SND_SOC_DAPM_MIXER("SLIMBUS_3_RX Port Mixer",
19285 SND_SOC_NOPM, 0, 0, sbus_3_rx_port_mixer_controls,
19286 ARRAY_SIZE(sbus_3_rx_port_mixer_controls)),
19287 SND_SOC_DAPM_MIXER("SLIMBUS_6_RX Port Mixer",
19288 SND_SOC_NOPM, 0, 0, sbus_6_rx_port_mixer_controls,
19289 ARRAY_SIZE(sbus_6_rx_port_mixer_controls)),
19290 SND_SOC_DAPM_MIXER("MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19291 mi2s_rx_port_mixer_controls, ARRAY_SIZE(mi2s_rx_port_mixer_controls)),
19292 SND_SOC_DAPM_MIXER("PRI_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19293 primary_mi2s_rx_port_mixer_controls,
19294 ARRAY_SIZE(primary_mi2s_rx_port_mixer_controls)),
19295 SND_SOC_DAPM_MIXER("SEC_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19296 sec_mi2s_rx_port_mixer_controls,
19297 ARRAY_SIZE(sec_mi2s_rx_port_mixer_controls)),
19298 SND_SOC_DAPM_MIXER("TERT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19299 tert_mi2s_rx_port_mixer_controls,
19300 ARRAY_SIZE(tert_mi2s_rx_port_mixer_controls)),
19301 SND_SOC_DAPM_MIXER("QUAT_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19302 quat_mi2s_rx_port_mixer_controls,
19303 ARRAY_SIZE(quat_mi2s_rx_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019304 SND_SOC_DAPM_MIXER("QUIN_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19305 quin_mi2s_rx_port_mixer_controls,
19306 ARRAY_SIZE(quin_mi2s_rx_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019307 SND_SOC_DAPM_MIXER("PRI_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19308 pri_tdm_rx_0_port_mixer_controls,
19309 ARRAY_SIZE(pri_tdm_rx_0_port_mixer_controls)),
19310 SND_SOC_DAPM_MIXER("PRI_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19311 pri_tdm_rx_1_port_mixer_controls,
19312 ARRAY_SIZE(pri_tdm_rx_1_port_mixer_controls)),
19313 SND_SOC_DAPM_MIXER("PRI_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19314 pri_tdm_rx_2_port_mixer_controls,
19315 ARRAY_SIZE(pri_tdm_rx_2_port_mixer_controls)),
19316 SND_SOC_DAPM_MIXER("PRI_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19317 pri_tdm_rx_3_port_mixer_controls,
19318 ARRAY_SIZE(pri_tdm_rx_3_port_mixer_controls)),
19319 SND_SOC_DAPM_MIXER("SEC_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19320 sec_tdm_rx_0_port_mixer_controls,
19321 ARRAY_SIZE(sec_tdm_rx_0_port_mixer_controls)),
19322 SND_SOC_DAPM_MIXER("SEC_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19323 sec_tdm_rx_1_port_mixer_controls,
19324 ARRAY_SIZE(sec_tdm_rx_1_port_mixer_controls)),
19325 SND_SOC_DAPM_MIXER("SEC_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19326 sec_tdm_rx_2_port_mixer_controls,
19327 ARRAY_SIZE(sec_tdm_rx_2_port_mixer_controls)),
19328 SND_SOC_DAPM_MIXER("SEC_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19329 sec_tdm_rx_3_port_mixer_controls,
19330 ARRAY_SIZE(sec_tdm_rx_3_port_mixer_controls)),
Derek Chenfdcc0982018-10-02 15:14:03 -070019331 SND_SOC_DAPM_MIXER("SEC_TDM_RX_7 Port Mixer", SND_SOC_NOPM, 0, 0,
19332 sec_tdm_rx_7_port_mixer_controls,
19333 ARRAY_SIZE(sec_tdm_rx_7_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019334 SND_SOC_DAPM_MIXER("TERT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19335 tert_tdm_rx_0_port_mixer_controls,
19336 ARRAY_SIZE(tert_tdm_rx_0_port_mixer_controls)),
19337 SND_SOC_DAPM_MIXER("TERT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19338 tert_tdm_rx_1_port_mixer_controls,
19339 ARRAY_SIZE(tert_tdm_rx_1_port_mixer_controls)),
19340 SND_SOC_DAPM_MIXER("TERT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19341 tert_tdm_rx_2_port_mixer_controls,
19342 ARRAY_SIZE(tert_tdm_rx_2_port_mixer_controls)),
19343 SND_SOC_DAPM_MIXER("TERT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19344 tert_tdm_rx_3_port_mixer_controls,
19345 ARRAY_SIZE(tert_tdm_rx_3_port_mixer_controls)),
19346 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19347 quat_tdm_rx_0_port_mixer_controls,
19348 ARRAY_SIZE(quat_tdm_rx_0_port_mixer_controls)),
19349 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19350 quat_tdm_rx_1_port_mixer_controls,
19351 ARRAY_SIZE(quat_tdm_rx_1_port_mixer_controls)),
19352 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19353 quat_tdm_rx_2_port_mixer_controls,
19354 ARRAY_SIZE(quat_tdm_rx_2_port_mixer_controls)),
19355 SND_SOC_DAPM_MIXER("QUAT_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19356 quat_tdm_rx_3_port_mixer_controls,
19357 ARRAY_SIZE(quat_tdm_rx_3_port_mixer_controls)),
Rohit Kumara5077932017-09-10 22:05:05 +053019358 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19359 quin_tdm_rx_0_port_mixer_controls,
19360 ARRAY_SIZE(quin_tdm_rx_0_port_mixer_controls)),
19361 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_1 Port Mixer", SND_SOC_NOPM, 0, 0,
19362 quin_tdm_rx_1_port_mixer_controls,
19363 ARRAY_SIZE(quin_tdm_rx_1_port_mixer_controls)),
19364 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_2 Port Mixer", SND_SOC_NOPM, 0, 0,
19365 quin_tdm_rx_2_port_mixer_controls,
19366 ARRAY_SIZE(quin_tdm_rx_2_port_mixer_controls)),
19367 SND_SOC_DAPM_MIXER("QUIN_TDM_RX_3 Port Mixer", SND_SOC_NOPM, 0, 0,
19368 quin_tdm_rx_3_port_mixer_controls,
19369 ARRAY_SIZE(quin_tdm_rx_3_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019370 SND_SOC_DAPM_MIXER("INT0_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19371 int0_mi2s_rx_port_mixer_controls,
19372 ARRAY_SIZE(int0_mi2s_rx_port_mixer_controls)),
19373 SND_SOC_DAPM_MIXER("INT4_MI2S_RX Port Mixer", SND_SOC_NOPM, 0, 0,
19374 int4_mi2s_rx_port_mixer_controls,
19375 ARRAY_SIZE(int4_mi2s_rx_port_mixer_controls)),
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053019376 SND_SOC_DAPM_MIXER("WSA_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19377 wsa_cdc_dma_rx_0_port_mixer_controls,
19378 ARRAY_SIZE(wsa_cdc_dma_rx_0_port_mixer_controls)),
19379 SND_SOC_DAPM_MIXER("RX_CDC_DMA_RX_0 Port Mixer", SND_SOC_NOPM, 0, 0,
19380 rx_cdc_dma_rx_0_port_mixer_controls,
19381 ARRAY_SIZE(rx_cdc_dma_rx_0_port_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019382 SND_SOC_DAPM_MIXER("QCHAT_Tx Mixer",
19383 SND_SOC_NOPM, 0, 0, tx_qchat_mixer_controls,
19384 ARRAY_SIZE(tx_qchat_mixer_controls)),
19385 SND_SOC_DAPM_MIXER("USB_AUDIO_RX_Voice Mixer",
19386 SND_SOC_NOPM, 0, 0, usb_audio_rx_voice_mixer_controls,
19387 ARRAY_SIZE(usb_audio_rx_voice_mixer_controls)),
19388 SND_SOC_DAPM_MIXER("USB_AUDIO_RX Port Mixer",
19389 SND_SOC_NOPM, 0, 0, usb_rx_port_mixer_controls,
19390 ARRAY_SIZE(usb_rx_port_mixer_controls)),
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080019391 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX_Voice Mixer",
19392 SND_SOC_NOPM, 0, 0, display_port_rx_voice_mixer_controls,
19393 ARRAY_SIZE(display_port_rx_voice_mixer_controls)),
Karthikeyan Mani57550082018-05-03 18:43:58 -070019394 SND_SOC_DAPM_MIXER("DISPLAY_PORT_RX1_Voice Mixer",
19395 SND_SOC_NOPM, 0, 0, display_port_rx1_voice_mixer_controls,
19396 ARRAY_SIZE(display_port_rx1_voice_mixer_controls)),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019397 /* lsm mixer definitions */
19398 SND_SOC_DAPM_MIXER("LSM1 Mixer", SND_SOC_NOPM, 0, 0,
19399 lsm1_mixer_controls, ARRAY_SIZE(lsm1_mixer_controls)),
19400 SND_SOC_DAPM_MIXER("LSM2 Mixer", SND_SOC_NOPM, 0, 0,
19401 lsm2_mixer_controls, ARRAY_SIZE(lsm2_mixer_controls)),
19402 SND_SOC_DAPM_MIXER("LSM3 Mixer", SND_SOC_NOPM, 0, 0,
19403 lsm3_mixer_controls, ARRAY_SIZE(lsm3_mixer_controls)),
19404 SND_SOC_DAPM_MIXER("LSM4 Mixer", SND_SOC_NOPM, 0, 0,
19405 lsm4_mixer_controls, ARRAY_SIZE(lsm4_mixer_controls)),
19406 SND_SOC_DAPM_MIXER("LSM5 Mixer", SND_SOC_NOPM, 0, 0,
19407 lsm5_mixer_controls, ARRAY_SIZE(lsm5_mixer_controls)),
19408 SND_SOC_DAPM_MIXER("LSM6 Mixer", SND_SOC_NOPM, 0, 0,
19409 lsm6_mixer_controls, ARRAY_SIZE(lsm6_mixer_controls)),
19410 SND_SOC_DAPM_MIXER("LSM7 Mixer", SND_SOC_NOPM, 0, 0,
19411 lsm7_mixer_controls, ARRAY_SIZE(lsm7_mixer_controls)),
19412 SND_SOC_DAPM_MIXER("LSM8 Mixer", SND_SOC_NOPM, 0, 0,
19413 lsm8_mixer_controls, ARRAY_SIZE(lsm8_mixer_controls)),
19414 /* Virtual Pins to force backends ON atm */
19415 SND_SOC_DAPM_OUTPUT("BE_OUT"),
19416 SND_SOC_DAPM_INPUT("BE_IN"),
19417
19418 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19419 &slim0_rx_vi_fb_lch_mux),
19420 SND_SOC_DAPM_MUX("SLIM0_RX_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19421 &slim0_rx_vi_fb_rch_mux),
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019422 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_LCH_MUX", SND_SOC_NOPM, 0, 0,
19423 &wsa_rx_0_vi_fb_lch_mux),
19424 SND_SOC_DAPM_MUX("WSA_RX_0_VI_FB_RCH_MUX", SND_SOC_NOPM, 0, 0,
19425 &wsa_rx_0_vi_fb_rch_mux),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019426 SND_SOC_DAPM_MUX("PRI_MI2S_RX_VI_FB_MUX", SND_SOC_NOPM, 0, 0,
19427 &mi2s_rx_vi_fb_mux),
19428 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_MONO_CH_MUX", SND_SOC_NOPM, 0, 0,
19429 &int4_mi2s_rx_vi_fb_mono_ch_mux),
19430 SND_SOC_DAPM_MUX("INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", SND_SOC_NOPM, 0, 0,
19431 &int4_mi2s_rx_vi_fb_stereo_ch_mux),
19432
19433 SND_SOC_DAPM_MUX("VOC_EXT_EC MUX", SND_SOC_NOPM, 0, 0,
19434 &voc_ext_ec_mux),
19435 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL1 MUX", SND_SOC_NOPM, 0, 0,
19436 &ext_ec_ref_mux_ul1),
19437 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL2 MUX", SND_SOC_NOPM, 0, 0,
19438 &ext_ec_ref_mux_ul2),
19439 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL3 MUX", SND_SOC_NOPM, 0, 0,
19440 &ext_ec_ref_mux_ul3),
19441 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL4 MUX", SND_SOC_NOPM, 0, 0,
19442 &ext_ec_ref_mux_ul4),
19443 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL5 MUX", SND_SOC_NOPM, 0, 0,
19444 &ext_ec_ref_mux_ul5),
19445 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL6 MUX", SND_SOC_NOPM, 0, 0,
19446 &ext_ec_ref_mux_ul6),
19447 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL8 MUX", SND_SOC_NOPM, 0, 0,
19448 &ext_ec_ref_mux_ul8),
19449 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL9 MUX", SND_SOC_NOPM, 0, 0,
19450 &ext_ec_ref_mux_ul9),
Laxminath Kasam38070be2017-08-17 18:21:59 +053019451 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL10 MUX", SND_SOC_NOPM, 0, 0,
19452 &ext_ec_ref_mux_ul10),
Asish Bhattacharya34504582017-08-08 12:55:01 +053019453 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL16 MUX", SND_SOC_NOPM, 0, 0,
19454 &ext_ec_ref_mux_ul16),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019455 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL17 MUX", SND_SOC_NOPM, 0, 0,
19456 &ext_ec_ref_mux_ul17),
19457 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL18 MUX", SND_SOC_NOPM, 0, 0,
19458 &ext_ec_ref_mux_ul18),
19459 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL19 MUX", SND_SOC_NOPM, 0, 0,
19460 &ext_ec_ref_mux_ul19),
Meng Wang5c4bab72018-04-25 10:40:01 +080019461 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL28 MUX", SND_SOC_NOPM, 0, 0,
19462 &ext_ec_ref_mux_ul28),
19463 SND_SOC_DAPM_MUX("AUDIO_REF_EC_UL29 MUX", SND_SOC_NOPM, 0, 0,
19464 &ext_ec_ref_mux_ul29),
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019465};
19466
19467static const struct snd_soc_dapm_route intercon[] = {
19468 {"PRI_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19469 {"PRI_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19470 {"PRI_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19471 {"PRI_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19472 {"PRI_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19473 {"PRI_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19474 {"PRI_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19475 {"PRI_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19476 {"PRI_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19477 {"PRI_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19478 {"PRI_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19479 {"PRI_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19480 {"PRI_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19481 {"PRI_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19482 {"PRI_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19483 {"PRI_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019484 {"PRI_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019485 {"PRI_I2S_RX", NULL, "PRI_RX Audio Mixer"},
19486
19487 {"SEC_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19488 {"SEC_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19489 {"SEC_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19490 {"SEC_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19491 {"SEC_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19492 {"SEC_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19493 {"SEC_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19494 {"SEC_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19495 {"SEC_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19496 {"SEC_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19497 {"SEC_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19498 {"SEC_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19499 {"SEC_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19500 {"SEC_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19501 {"SEC_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19502 {"SEC_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019503 {"SEC_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019504 {"SEC_I2S_RX", NULL, "SEC_RX Audio Mixer"},
19505
19506 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19507 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19508 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19509 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19510 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19511 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19512 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19513 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19514 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19515 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19516 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19517 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19518 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19519 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19520 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19521 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019522 {"SLIMBUS_0_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019523 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Audio Mixer"},
19524
19525 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19526 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19527 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19528 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19529 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19530 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19531 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19532 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19533 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19534 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19535 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19536 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19537 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19538 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19539 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19540 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019541 {"SLIMBUS_2_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019542 {"SLIMBUS_2_RX", NULL, "SLIMBUS_2_RX Audio Mixer"},
19543
19544 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19545 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19546 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19547 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19548 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19549 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19550 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19551 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19552 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19553 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19554 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19555 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19556 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19557 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19558 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19559 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019560 {"SLIMBUS_5_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019561 {"SLIMBUS_5_RX", NULL, "SLIMBUS_5_RX Audio Mixer"},
19562
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019563 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19564 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19565 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19566 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19567 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19568 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19569 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19570 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19571 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19572 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19573 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19574 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19575 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19576 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19577 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19578 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019579 {"WSA_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019580 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0 Audio Mixer"},
19581
19582 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19583 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19584 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19585 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19586 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19587 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19588 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19589 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19590 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19591 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19592 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19593 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19594 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19595 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19596 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19597 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019598 {"WSA_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053019599 {"WSA_CDC_DMA_RX_1", NULL, "WSA_CDC_DMA_RX_1 Audio Mixer"},
19600
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019601 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
19602 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
19603 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
19604 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
19605 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
19606 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
19607 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
19608 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
19609 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
19610 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
19611 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
19612 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
19613 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
19614 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
19615 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
19616 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019617 {"RX_CDC_DMA_RX_0 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019618 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0 Audio Mixer"},
19619
19620 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
19621 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
19622 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
19623 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
19624 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
19625 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
19626 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
19627 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
19628 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
19629 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
19630 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
19631 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
19632 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
19633 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
19634 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
19635 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019636 {"RX_CDC_DMA_RX_1 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019637 {"RX_CDC_DMA_RX_1", NULL, "RX_CDC_DMA_RX_1 Audio Mixer"},
19638
19639 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19640 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19641 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
19642 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
19643 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19644 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
19645 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
19646 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
19647 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19648 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
19649 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
19650 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
19651 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
19652 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
19653 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
19654 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019655 {"RX_CDC_DMA_RX_2 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019656 {"RX_CDC_DMA_RX_2", NULL, "RX_CDC_DMA_RX_2 Audio Mixer"},
19657
19658 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
19659 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
19660 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
19661 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
19662 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
19663 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
19664 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
19665 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
19666 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
19667 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
19668 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
19669 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
19670 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
19671 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
19672 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
19673 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019674 {"RX_CDC_DMA_RX_3 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019675 {"RX_CDC_DMA_RX_3", NULL, "RX_CDC_DMA_RX_3 Audio Mixer"},
19676
19677 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
19678 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
19679 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
19680 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
19681 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
19682 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
19683 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
19684 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
19685 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
19686 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
19687 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
19688 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
19689 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
19690 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
19691 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
19692 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019693 {"RX_CDC_DMA_RX_4 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019694 {"RX_CDC_DMA_RX_4", NULL, "RX_CDC_DMA_RX_4 Audio Mixer"},
19695
19696 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia1", "MM_DL1"},
19697 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia2", "MM_DL2"},
19698 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia3", "MM_DL3"},
19699 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia4", "MM_DL4"},
19700 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia5", "MM_DL5"},
19701 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia6", "MM_DL6"},
19702 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia7", "MM_DL7"},
19703 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia8", "MM_DL8"},
19704 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia9", "MM_DL9"},
19705 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia10", "MM_DL10"},
19706 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia11", "MM_DL11"},
19707 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia12", "MM_DL12"},
19708 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia13", "MM_DL13"},
19709 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia14", "MM_DL14"},
19710 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia15", "MM_DL15"},
19711 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019712 {"RX_CDC_DMA_RX_5 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019713 {"RX_CDC_DMA_RX_5", NULL, "RX_CDC_DMA_RX_5 Audio Mixer"},
19714
19715 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia1", "MM_DL1"},
19716 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia2", "MM_DL2"},
19717 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia3", "MM_DL3"},
19718 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia4", "MM_DL4"},
19719 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia5", "MM_DL5"},
19720 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia6", "MM_DL6"},
19721 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia7", "MM_DL7"},
19722 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia8", "MM_DL8"},
19723 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia9", "MM_DL9"},
19724 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia10", "MM_DL10"},
19725 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia11", "MM_DL11"},
19726 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia12", "MM_DL12"},
19727 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia13", "MM_DL13"},
19728 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia14", "MM_DL14"},
19729 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia15", "MM_DL15"},
19730 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019731 {"RX_CDC_DMA_RX_6 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019732 {"RX_CDC_DMA_RX_6", NULL, "RX_CDC_DMA_RX_6 Audio Mixer"},
19733
19734 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia1", "MM_DL1"},
19735 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia2", "MM_DL2"},
19736 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia3", "MM_DL3"},
19737 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia4", "MM_DL4"},
19738 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia5", "MM_DL5"},
19739 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia6", "MM_DL6"},
19740 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia7", "MM_DL7"},
19741 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia8", "MM_DL8"},
19742 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia9", "MM_DL9"},
19743 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia10", "MM_DL10"},
19744 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia11", "MM_DL11"},
19745 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia12", "MM_DL12"},
19746 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia13", "MM_DL13"},
19747 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia14", "MM_DL14"},
19748 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia15", "MM_DL15"},
19749 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019750 {"RX_CDC_DMA_RX_7 Audio Mixer", "MultiMedia26", "MM_DL26"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053019751 {"RX_CDC_DMA_RX_7", NULL, "RX_CDC_DMA_RX_7 Audio Mixer"},
19752
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019753 {"HDMI Mixer", "MultiMedia1", "MM_DL1"},
19754 {"HDMI Mixer", "MultiMedia2", "MM_DL2"},
19755 {"HDMI Mixer", "MultiMedia3", "MM_DL3"},
19756 {"HDMI Mixer", "MultiMedia4", "MM_DL4"},
19757 {"HDMI Mixer", "MultiMedia5", "MM_DL5"},
19758 {"HDMI Mixer", "MultiMedia6", "MM_DL6"},
19759 {"HDMI Mixer", "MultiMedia7", "MM_DL7"},
19760 {"HDMI Mixer", "MultiMedia8", "MM_DL8"},
19761 {"HDMI Mixer", "MultiMedia9", "MM_DL9"},
19762 {"HDMI Mixer", "MultiMedia10", "MM_DL10"},
19763 {"HDMI Mixer", "MultiMedia11", "MM_DL11"},
19764 {"HDMI Mixer", "MultiMedia12", "MM_DL12"},
19765 {"HDMI Mixer", "MultiMedia13", "MM_DL13"},
19766 {"HDMI Mixer", "MultiMedia14", "MM_DL14"},
19767 {"HDMI Mixer", "MultiMedia15", "MM_DL15"},
19768 {"HDMI Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019769 {"HDMI Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019770 {"HDMI", NULL, "HDMI Mixer"},
19771
19772 {"DISPLAY_PORT Mixer", "MultiMedia1", "MM_DL1"},
19773 {"DISPLAY_PORT Mixer", "MultiMedia2", "MM_DL2"},
19774 {"DISPLAY_PORT Mixer", "MultiMedia3", "MM_DL3"},
19775 {"DISPLAY_PORT Mixer", "MultiMedia4", "MM_DL4"},
19776 {"DISPLAY_PORT Mixer", "MultiMedia5", "MM_DL5"},
19777 {"DISPLAY_PORT Mixer", "MultiMedia6", "MM_DL6"},
19778 {"DISPLAY_PORT Mixer", "MultiMedia7", "MM_DL7"},
19779 {"DISPLAY_PORT Mixer", "MultiMedia8", "MM_DL8"},
19780 {"DISPLAY_PORT Mixer", "MultiMedia9", "MM_DL9"},
19781 {"DISPLAY_PORT Mixer", "MultiMedia10", "MM_DL10"},
19782 {"DISPLAY_PORT Mixer", "MultiMedia11", "MM_DL11"},
19783 {"DISPLAY_PORT Mixer", "MultiMedia12", "MM_DL12"},
19784 {"DISPLAY_PORT Mixer", "MultiMedia13", "MM_DL13"},
19785 {"DISPLAY_PORT Mixer", "MultiMedia14", "MM_DL14"},
19786 {"DISPLAY_PORT Mixer", "MultiMedia15", "MM_DL15"},
19787 {"DISPLAY_PORT Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019788 {"DISPLAY_PORT Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019789 {"DISPLAY_PORT", NULL, "DISPLAY_PORT Mixer"},
19790
Karthikeyan Mani57550082018-05-03 18:43:58 -070019791 {"DISPLAY_PORT1 Mixer", "MultiMedia1", "MM_DL1"},
19792 {"DISPLAY_PORT1 Mixer", "MultiMedia2", "MM_DL2"},
19793 {"DISPLAY_PORT1 Mixer", "MultiMedia3", "MM_DL3"},
19794 {"DISPLAY_PORT1 Mixer", "MultiMedia4", "MM_DL4"},
19795 {"DISPLAY_PORT1 Mixer", "MultiMedia5", "MM_DL5"},
19796 {"DISPLAY_PORT1 Mixer", "MultiMedia6", "MM_DL6"},
19797 {"DISPLAY_PORT1 Mixer", "MultiMedia7", "MM_DL7"},
19798 {"DISPLAY_PORT1 Mixer", "MultiMedia8", "MM_DL8"},
19799 {"DISPLAY_PORT1 Mixer", "MultiMedia9", "MM_DL9"},
19800 {"DISPLAY_PORT1 Mixer", "MultiMedia10", "MM_DL10"},
19801 {"DISPLAY_PORT1 Mixer", "MultiMedia11", "MM_DL11"},
19802 {"DISPLAY_PORT1 Mixer", "MultiMedia12", "MM_DL12"},
19803 {"DISPLAY_PORT1 Mixer", "MultiMedia13", "MM_DL13"},
19804 {"DISPLAY_PORT1 Mixer", "MultiMedia14", "MM_DL14"},
19805 {"DISPLAY_PORT1 Mixer", "MultiMedia15", "MM_DL15"},
19806 {"DISPLAY_PORT1 Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019807 {"DISPLAY_PORT1 Mixer", "MultiMedia26", "MM_DL26"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070019808 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT1 Mixer"},
19809
Ralf Herzc8701f72018-06-20 11:37:35 +020019810 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19811 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19812 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19813 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19814 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19815 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19816 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19817 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19818 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19819 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19820 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19821 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19822 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19823 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19824 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19825 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019826 {"PRI_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019827 {"PRI_SPDIF_RX", NULL, "PRI_SPDIF_RX Audio Mixer"},
19828
19829 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19830 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19831 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19832 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19833 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19834 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19835 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19836 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19837 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19838 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19839 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19840 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19841 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19842 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19843 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19844 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019845 {"SEC_SPDIF_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019846 {"SEC_SPDIF_RX", NULL, "SEC_SPDIF_RX Audio Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019847
19848 /* incall */
19849 {"Incall_Music Audio Mixer", "MultiMedia1", "MM_DL1"},
19850 {"Incall_Music Audio Mixer", "MultiMedia2", "MM_DL2"},
19851 {"Incall_Music Audio Mixer", "MultiMedia5", "MM_DL5"},
19852 {"Incall_Music Audio Mixer", "MultiMedia9", "MM_DL9"},
19853 {"VOICE_PLAYBACK_TX", NULL, "Incall_Music Audio Mixer"},
19854 {"Incall_Music_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
19855 {"Incall_Music_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
19856 {"Incall_Music_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
19857 {"Incall_Music_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
19858 {"VOICE2_PLAYBACK_TX", NULL, "Incall_Music_2 Audio Mixer"},
19859 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19860 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19861 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19862 {"SLIMBUS_4_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19863 {"SLIMBUS_4_RX", NULL, "SLIMBUS_4_RX Audio Mixer"},
19864
19865 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19866 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19867 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19868 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19869 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19870 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19871 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19872 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19873 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19874 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19875 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19876 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19877 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19878 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19879 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19880 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019881 {"SLIMBUS_6_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019882 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Audio Mixer"},
19883
19884 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19885 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19886 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19887 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19888 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19889 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19890 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19891 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19892 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19893 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19894 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19895 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19896 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19897 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19898 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19899 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019900 {"SLIMBUS_7_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019901 {"SLIMBUS_7_RX", NULL, "SLIMBUS_7_RX Audio Mixer"},
19902
Surendar Karka3ef3d812018-09-28 18:52:35 +053019903 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19904 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19905 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19906 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19907 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19908 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19909 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19910 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19911 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19912 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19913 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19914 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19915 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19916 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19917 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19918 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
19919 {"SLIMBUS_9_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
19920 {"SLIMBUS_9_RX", NULL, "SLIMBUS_9_RX Audio Mixer"},
19921
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019922 {"USB_AUDIO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19923 {"USB_AUDIO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19924 {"USB_AUDIO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19925 {"USB_AUDIO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19926 {"USB_AUDIO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19927 {"USB_AUDIO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
19928 {"USB_AUDIO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
19929 {"USB_AUDIO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
19930 {"USB_AUDIO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
19931 {"USB_AUDIO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
19932 {"USB_AUDIO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
19933 {"USB_AUDIO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
19934 {"USB_AUDIO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
19935 {"USB_AUDIO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
19936 {"USB_AUDIO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
19937 {"USB_AUDIO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053019938 {"USB_AUDIO_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019939 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Audio Mixer"},
19940
19941 {"MultiMedia1 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19942 {"MultiMedia4 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19943 {"MultiMedia8 Mixer", "VOC_REC_UL", "INCALL_RECORD_TX"},
19944 {"MultiMedia1 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19945 {"MultiMedia4 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19946 {"MultiMedia8 Mixer", "VOC_REC_DL", "INCALL_RECORD_RX"},
19947 {"MultiMedia1 Mixer", "SLIM_4_TX", "SLIMBUS_4_TX"},
19948 {"MultiMedia1 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19949 {"MultiMedia1 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19950 {"MultiMedia1 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019951 {"MultiMedia1 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019952 {"MultiMedia8 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
19953 {"MultiMedia8 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019954 {"MultiMedia8 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019955 {"MultiMedia4 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19956 {"MultiMedia17 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19957 {"MultiMedia18 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19958 {"MultiMedia19 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019959 {"MultiMedia28 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19960 {"MultiMedia29 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019961 {"MultiMedia8 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19962 {"MultiMedia2 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19963 {"MultiMedia4 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19964 {"MultiMedia17 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19965 {"MultiMedia18 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19966 {"MultiMedia19 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019967 {"MultiMedia28 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
19968 {"MultiMedia29 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019969 {"MultiMedia8 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019970 {"MultiMedia18 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019971 {"MultiMedia17 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19972 {"MultiMedia18 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19973 {"MultiMedia19 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19974 {"MultiMedia28 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19975 {"MultiMedia29 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
19976 {"MultiMedia17 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019977 {"MultiMedia18 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053019978 {"MultiMedia19 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19979 {"MultiMedia28 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
19980 {"MultiMedia29 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019981 {"MultiMedia8 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
19982 {"MultiMedia3 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
19983 {"MultiMedia5 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019984 {"MultiMedia10 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053019985 {"MultiMedia16 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019986 {"MultiMedia5 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
19987 {"MultiMedia5 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019988 {"MultiMedia5 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053019989 {"MultiMedia10 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053019990 {"MultiMedia10 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Ralf Herzc8701f72018-06-20 11:37:35 +020019991 {"MultiMedia18 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
19992 {"MultiMedia18 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
19993
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053019994 {"MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
19995 {"MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
19996 {"MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
19997 {"MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
19998 {"MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
19999 {"MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20000 {"MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20001 {"MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20002 {"MI2S_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
20003 {"MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20004 {"MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20005 {"MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20006 {"MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20007 {"MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20008 {"MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20009 {"MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020010 {"MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020011 {"MI2S_RX", NULL, "MI2S_RX Audio Mixer"},
20012
20013 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20014 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20015 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20016 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20017 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20018 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20019 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20020 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20021 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20022 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20023 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20024 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20025 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20026 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20027 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020028 {"QUAT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020029 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Audio Mixer"},
20030
20031 {"TERT_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20032 {"TERT_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20033 {"TERT_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20034 {"TERT_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20035 {"TERT_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20036 {"TERT_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20037 {"TERT_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20038 {"TERT_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20039 {"TERT_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20040 {"TERT_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20041 {"TERT_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20042 {"TERT_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20043 {"TERT_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20044 {"TERT_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020045 {"TERT_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020046 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Audio Mixer"},
20047
20048 {"SEC_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20049 {"SEC_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20050 {"SEC_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20051 {"SEC_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20052 {"SEC_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20053 {"SEC_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20054 {"SEC_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20055 {"SEC_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20056 {"SEC_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20057 {"SEC_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20058 {"SEC_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20059 {"SEC_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20060 {"SEC_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20061 {"SEC_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020062 {"SEC_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020063 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Audio Mixer"},
20064
20065 {"SEC_MI2S_RX_SD1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20066 {"SEC_MI2S_RX_SD1", NULL, "SEC_MI2S_RX_SD1 Audio Mixer"},
20067
20068 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20069 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
20070
20071 {"PRI_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20072 {"PRI_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20073 {"PRI_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20074 {"PRI_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20075 {"PRI_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20076 {"PRI_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20077 {"PRI_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20078 {"PRI_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20079 {"PRI_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20080 {"PRI_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20081 {"PRI_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20082 {"PRI_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20083 {"PRI_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20084 {"PRI_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20085 {"PRI_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Surendar Karkac1cde372018-08-14 18:56:24 +053020086 {"PRI_MI2S_RX Audio Mixer", "MultiMedia26", "MM_DL26"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020087 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Audio Mixer"},
20088
20089 {"INT0_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20090 {"INT0_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20091 {"INT0_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20092 {"INT0_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20093 {"INT0_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20094 {"INT0_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20095 {"INT0_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20096 {"INT0_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20097 {"INT0_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20098 {"INT0_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20099 {"INT0_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20100 {"INT0_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20101 {"INT0_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20102 {"INT0_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20103 {"INT0_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20104 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Audio Mixer"},
20105
20106 {"INT4_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20107 {"INT4_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20108 {"INT4_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20109 {"INT4_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20110 {"INT4_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20111 {"INT4_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20112 {"INT4_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20113 {"INT4_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20114 {"INT4_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20115 {"INT4_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20116 {"INT4_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20117 {"INT4_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20118 {"INT4_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20119 {"INT4_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20120 {"INT4_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20121 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Audio Mixer"},
20122
20123 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20124 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20125 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
20126 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
20127 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
20128 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
20129 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
20130 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
20131 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
20132 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
20133 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
20134 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
20135 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
20136 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
20137 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
20138 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
20139 {"QUIN_MI2S_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
20140 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Audio Mixer"},
20141
20142 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20143 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20144 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20145 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20146 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20147 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20148 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20149 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20150 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20151 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20152 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20153 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20154 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20155 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20156 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20157 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020158 {"PRI_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020159 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Audio Mixer"},
20160
20161 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20162 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20163 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20164 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20165 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20166 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20167 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20168 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20169 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20170 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20171 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20172 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20173 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20174 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20175 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20176 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020177 {"PRI_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020178 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Audio Mixer"},
20179
20180 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20181 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20182 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20183 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20184 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20185 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20186 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20187 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20188 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20189 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20190 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20191 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20192 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20193 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20194 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20195 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020196 {"PRI_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020197 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Audio Mixer"},
20198
20199 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20200 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20201 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20202 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20203 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20204 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20205 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20206 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20207 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20208 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20209 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20210 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20211 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20212 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20213 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20214 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020215 {"PRI_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020216 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Audio Mixer"},
20217
20218 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20219 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20220 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20221 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20222 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20223 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20224 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20225 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20226 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20227 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20228 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20229 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20230 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20231 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20232 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20233 {"PRI_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20234 {"PRI_TDM_TX_0", NULL, "PRI_TDM_TX_0 Audio Mixer"},
20235
20236 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20237 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20238 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20239 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20240 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20241 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20242 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20243 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20244 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20245 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20246 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20247 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20248 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20249 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20250 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20251 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020252 {"SEC_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020253 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Audio Mixer"},
20254
20255 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20256 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20257 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20258 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20259 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20260 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20261 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20262 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20263 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20264 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20265 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20266 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20267 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20268 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20269 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20270 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020271 {"SEC_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020272 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Audio Mixer"},
20273
20274 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20275 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20276 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20277 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20278 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20279 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20280 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20281 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20282 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20283 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20284 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20285 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20286 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20287 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20288 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20289 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020290 {"SEC_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020291 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Audio Mixer"},
20292
20293 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20294 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20295 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20296 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20297 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20298 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20299 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20300 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20301 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20302 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20303 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20304 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20305 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20306 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20307 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20308 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020309 {"SEC_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020310 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Audio Mixer"},
20311
20312 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20313 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20314 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20315 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20316 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20317 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20318 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20319 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20320 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20321 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20322 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20323 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20324 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20325 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20326 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20327 {"SEC_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20328 {"SEC_TDM_TX_0", NULL, "SEC_TDM_TX_0 Audio Mixer"},
20329
20330 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20331 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20332 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20333 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20334 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20335 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20336 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20337 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20338 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20339 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20340 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20341 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20342 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20343 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20344 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20345 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020346 {"TERT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020347 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Audio Mixer"},
20348
20349 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20350 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20351 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20352 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20353 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20354 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20355 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20356 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20357 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20358 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20359 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20360 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20361 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20362 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20363 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20364 {"TERT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20365 {"TERT_TDM_TX_0", NULL, "TERT_TDM_TX_0 Audio Mixer"},
20366
20367 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20368 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20369 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20370 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20371 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20372 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20373 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20374 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20375 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20376 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20377 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20378 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20379 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20380 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20381 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20382 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020383 {"TERT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020384 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Audio Mixer"},
20385
20386 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20387 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20388 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20389 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20390 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20391 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20392 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20393 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20394 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20395 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20396 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20397 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20398 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20399 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20400 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20401 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020402 {"TERT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020403 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Audio Mixer"},
20404
20405 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20406 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20407 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20408 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20409 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20410 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20411 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20412 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20413 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20414 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20415 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20416 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20417 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20418 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20419 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20420 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020421 {"TERT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020422 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Audio Mixer"},
20423
20424 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia1", "MM_DL1"},
20425 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia2", "MM_DL2"},
20426 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia3", "MM_DL3"},
20427 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia4", "MM_DL4"},
20428 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia5", "MM_DL5"},
20429 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia6", "MM_DL6"},
20430 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia7", "MM_DL7"},
20431 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia8", "MM_DL8"},
20432 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia9", "MM_DL9"},
20433 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia10", "MM_DL10"},
20434 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia11", "MM_DL11"},
20435 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia12", "MM_DL12"},
20436 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia13", "MM_DL13"},
20437 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia14", "MM_DL14"},
20438 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia15", "MM_DL15"},
20439 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020440 {"TERT_TDM_RX_4 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020441 {"TERT_TDM_RX_4", NULL, "TERT_TDM_RX_4 Audio Mixer"},
20442
20443 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20444 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20445 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20446 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20447 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20448 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20449 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20450 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20451 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20452 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20453 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20454 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20455 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20456 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20457 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20458 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20459 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020460 {"QUAT_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020461 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Audio Mixer"},
20462
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020463 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20464 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20465 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20466 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20467 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20468 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20469 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20470 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20471 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20472 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20473 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20474 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20475 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20476 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20477 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20478 {"QUAT_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20479 {"QUAT_TDM_TX_0", NULL, "QUAT_TDM_TX_0 Audio Mixer"},
20480
20481 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20482 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20483 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20484 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20485 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20486 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20487 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20488 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20489 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20490 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20491 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20492 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20493 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20494 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20495 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20496 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20497 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020498 {"QUAT_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020499 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Audio Mixer"},
20500
20501 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20502 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20503 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20504 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20505 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20506 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20507 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20508 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20509 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20510 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20511 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20512 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20513 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20514 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20515 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20516 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20517 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020518 {"QUAT_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020519 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Audio Mixer"},
20520
20521 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20522 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20523 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20524 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20525 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20526 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20527 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20528 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20529 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20530 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20531 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20532 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20533 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20534 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20535 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20536 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20537 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020538 {"QUAT_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020539 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Audio Mixer"},
20540
Rohit Kumara5077932017-09-10 22:05:05 +053020541 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20542 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20543 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20544 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20545 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20546 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20547 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20548 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20549 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20550 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20551 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20552 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20553 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20554 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20555 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20556 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20557 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020558 {"QUIN_TDM_RX_0 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020559 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Audio Mixer"},
20560
20561 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia1", "MM_DL1"},
20562 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia2", "MM_DL2"},
20563 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia3", "MM_DL3"},
20564 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia4", "MM_DL4"},
20565 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia5", "MM_DL5"},
20566 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia6", "MM_DL6"},
20567 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia7", "MM_DL7"},
20568 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia8", "MM_DL8"},
20569 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia9", "MM_DL9"},
20570 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia10", "MM_DL10"},
20571 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia11", "MM_DL11"},
20572 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia12", "MM_DL12"},
20573 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia13", "MM_DL13"},
20574 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia14", "MM_DL14"},
20575 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia15", "MM_DL15"},
20576 {"QUIN_TDM_TX_0 Audio Mixer", "MultiMedia16", "MM_DL16"},
20577 {"QUIN_TDM_TX_0", NULL, "QUIN_TDM_TX_0 Audio Mixer"},
20578
20579 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia1", "MM_DL1"},
20580 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia2", "MM_DL2"},
20581 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia3", "MM_DL3"},
20582 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia4", "MM_DL4"},
20583 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia5", "MM_DL5"},
20584 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia6", "MM_DL6"},
20585 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia7", "MM_DL7"},
20586 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia8", "MM_DL8"},
20587 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia9", "MM_DL9"},
20588 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia10", "MM_DL10"},
20589 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia11", "MM_DL11"},
20590 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia12", "MM_DL12"},
20591 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia13", "MM_DL13"},
20592 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia14", "MM_DL14"},
20593 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia15", "MM_DL15"},
20594 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia16", "MM_DL16"},
20595 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020596 {"QUIN_TDM_RX_1 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020597 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Audio Mixer"},
20598
20599 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia1", "MM_DL1"},
20600 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia2", "MM_DL2"},
20601 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia3", "MM_DL3"},
20602 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia4", "MM_DL4"},
20603 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia5", "MM_DL5"},
20604 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia6", "MM_DL6"},
20605 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia7", "MM_DL7"},
20606 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia8", "MM_DL8"},
20607 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia9", "MM_DL9"},
20608 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia10", "MM_DL10"},
20609 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia11", "MM_DL11"},
20610 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia12", "MM_DL12"},
20611 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia13", "MM_DL13"},
20612 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia14", "MM_DL14"},
20613 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia15", "MM_DL15"},
20614 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia16", "MM_DL16"},
20615 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020616 {"QUIN_TDM_RX_2 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020617 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Audio Mixer"},
20618
20619 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia1", "MM_DL1"},
20620 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia2", "MM_DL2"},
20621 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia3", "MM_DL3"},
20622 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia4", "MM_DL4"},
20623 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia5", "MM_DL5"},
20624 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia6", "MM_DL6"},
20625 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia7", "MM_DL7"},
20626 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia8", "MM_DL8"},
20627 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia9", "MM_DL9"},
20628 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia10", "MM_DL10"},
20629 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia11", "MM_DL11"},
20630 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia12", "MM_DL12"},
20631 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia13", "MM_DL13"},
20632 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia14", "MM_DL14"},
20633 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia15", "MM_DL15"},
20634 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia16", "MM_DL16"},
20635 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia20", "MM_DL20"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070020636 {"QUIN_TDM_RX_3 Audio Mixer", "MultiMedia21", "MM_DL21"},
Rohit Kumara5077932017-09-10 22:05:05 +053020637 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Audio Mixer"},
20638
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020639 {"MultiMedia1 Mixer", "PRI_TX", "PRI_I2S_TX"},
20640 {"MultiMedia1 Mixer", "MI2S_TX", "MI2S_TX"},
20641 {"MultiMedia2 Mixer", "MI2S_TX", "MI2S_TX"},
20642 {"MultiMedia3 Mixer", "MI2S_TX", "MI2S_TX"},
20643 {"MultiMedia5 Mixer", "MI2S_TX", "MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020644 {"MultiMedia10 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020645 {"MultiMedia16 Mixer", "MI2S_TX", "MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020646 {"MultiMedia1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20647 {"MultiMedia2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20648 {"MultiMedia6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
20649 {"MultiMedia1 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20650 {"MultiMedia2 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
20651 {"MultiMedia1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20652 {"MultiMedia2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20653 {"MultiMedia1 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20654 {"MultiMedia2 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20655 {"MultiMedia1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20656 {"MultiMedia2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20657 {"MultiMedia1 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20658 {"MultiMedia1 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20659 {"MultiMedia3 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20660 {"MultiMedia5 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020661 {"MultiMedia10 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020662 {"MultiMedia1 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20663 {"MultiMedia3 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
20664 {"MultiMedia5 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020665 {"MultiMedia10 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020666 {"MultiMedia16 Mixer", "AUX_PCM_TX", "AUX_PCM_TX"},
20667 {"MultiMedia16 Mixer", "SEC_AUX_PCM_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020668 {"MultiMedia1 Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
20669 {"MultiMedia3 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
20670 {"MultiMedia5 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020671 {"MultiMedia10 Mixer", "TERT_AUX_PCM_TX", "TERT_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020672 {"MultiMedia1 Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
20673 {"MultiMedia3 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
20674 {"MultiMedia5 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020675 {"MultiMedia10 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020676 {"MultiMedia16 Mixer", "QUAT_AUX_PCM_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020677 {"MultiMedia1 Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
20678 {"MultiMedia3 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
20679 {"MultiMedia5 Mixer", "QUIN_AUX_PCM_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020680 {"MultiMedia2 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20681 {"MultiMedia2 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
20682 {"MultiMedia2 Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
20683 {"MultiMedia2 Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
20684 {"MultiMedia1 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20685 {"MultiMedia1 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20686 {"MultiMedia2 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20687 {"MultiMedia6 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
20688 {"MultiMedia6 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20689 {"MultiMedia3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20690 {"MultiMedia5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020691 {"MultiMedia10 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020692 {"MultiMedia6 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20693 {"MultiMedia3 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
20694 {"MultiMedia5 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020695 {"MultiMedia10 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020696 {"MultiMedia16 Mixer", "INT2_MI2S_TX", "INT2_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020697 {"MultiMedia6 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20698 {"MultiMedia3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20699 {"MultiMedia5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053020700 {"MultiMedia10 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053020701 {"MultiMedia16 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053020702 {"MultiMedia17 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20703 {"MultiMedia18 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20704 {"MultiMedia19 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20705 {"MultiMedia28 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
20706 {"MultiMedia29 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020707 {"MultiMedia6 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20708 {"MultiMedia6 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
20709 {"MultiMedia6 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
20710 {"MultiMedia6 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020711 {"MultiMedia6 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020712
20713 {"MultiMedia1 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20714 {"MultiMedia1 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20715 {"MultiMedia1 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20716 {"MultiMedia1 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20717 {"MultiMedia1 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20718 {"MultiMedia1 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20719 {"MultiMedia1 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20720 {"MultiMedia1 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20721 {"MultiMedia1 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20722 {"MultiMedia1 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20723 {"MultiMedia1 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20724 {"MultiMedia1 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20725 {"MultiMedia1 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20726 {"MultiMedia1 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20727 {"MultiMedia1 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20728 {"MultiMedia1 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020729 {"MultiMedia1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20730 {"MultiMedia1 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20731 {"MultiMedia1 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20732 {"MultiMedia1 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020733 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20734 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20735 {"MultiMedia1 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20736 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20737 {"MultiMedia1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020738 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20739 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20740 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20741 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20742 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20743 {"MultiMedia1 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020744 {"MultiMedia1 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20745 {"MultiMedia1 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020746
20747 {"MultiMedia2 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20748 {"MultiMedia2 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20749 {"MultiMedia2 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20750 {"MultiMedia2 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20751 {"MultiMedia2 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20752 {"MultiMedia2 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20753 {"MultiMedia2 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20754 {"MultiMedia2 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20755 {"MultiMedia2 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20756 {"MultiMedia2 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20757 {"MultiMedia2 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20758 {"MultiMedia2 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20759 {"MultiMedia2 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20760 {"MultiMedia2 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20761 {"MultiMedia2 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20762 {"MultiMedia2 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020763 {"MultiMedia2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20764 {"MultiMedia2 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20765 {"MultiMedia2 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20766 {"MultiMedia2 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020767 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20768 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20769 {"MultiMedia2 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20770 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20771 {"MultiMedia2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020772 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20773 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20774 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20775 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20776 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20777 {"MultiMedia2 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020778 {"MultiMedia2 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20779 {"MultiMedia2 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020780
20781 {"MultiMedia3 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20782 {"MultiMedia3 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20783 {"MultiMedia3 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20784 {"MultiMedia3 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20785 {"MultiMedia3 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20786 {"MultiMedia3 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20787 {"MultiMedia3 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20788 {"MultiMedia3 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20789 {"MultiMedia3 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20790 {"MultiMedia3 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20791 {"MultiMedia3 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20792 {"MultiMedia3 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20793 {"MultiMedia3 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20794 {"MultiMedia3 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20795 {"MultiMedia3 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20796 {"MultiMedia3 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020797 {"MultiMedia3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20798 {"MultiMedia3 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20799 {"MultiMedia3 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20800 {"MultiMedia3 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020801 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20802 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20803 {"MultiMedia3 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20804 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20805 {"MultiMedia3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020806 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20807 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20808 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20809 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20810 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20811 {"MultiMedia3 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020812 {"MultiMedia3 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20813 {"MultiMedia3 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020814
20815 {"MultiMedia4 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20816 {"MultiMedia4 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20817 {"MultiMedia4 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20818 {"MultiMedia4 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20819 {"MultiMedia4 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20820 {"MultiMedia4 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20821 {"MultiMedia4 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20822 {"MultiMedia4 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20823 {"MultiMedia4 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20824 {"MultiMedia4 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20825 {"MultiMedia4 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20826 {"MultiMedia4 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20827 {"MultiMedia4 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20828 {"MultiMedia4 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20829 {"MultiMedia4 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20830 {"MultiMedia4 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020831 {"MultiMedia4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20832 {"MultiMedia4 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20833 {"MultiMedia4 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20834 {"MultiMedia4 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020835 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20836 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20837 {"MultiMedia4 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20838 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20839 {"MultiMedia4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020840 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20841 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20842 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20843 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20844 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20845 {"MultiMedia4 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020846 {"MultiMedia4 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20847 {"MultiMedia4 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020848
20849 {"MultiMedia5 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20850 {"MultiMedia5 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20851 {"MultiMedia5 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20852 {"MultiMedia5 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20853 {"MultiMedia5 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20854 {"MultiMedia5 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20855 {"MultiMedia5 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20856 {"MultiMedia5 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20857 {"MultiMedia5 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20858 {"MultiMedia5 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20859 {"MultiMedia5 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20860 {"MultiMedia5 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20861 {"MultiMedia5 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20862 {"MultiMedia5 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20863 {"MultiMedia5 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20864 {"MultiMedia5 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020865 {"MultiMedia5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20866 {"MultiMedia5 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20867 {"MultiMedia5 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20868 {"MultiMedia5 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020869 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20870 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20871 {"MultiMedia5 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20872 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20873 {"MultiMedia5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020874 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20875 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20876 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20877 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20878 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20879 {"MultiMedia5 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020880 {"MultiMedia5 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20881 {"MultiMedia5 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020882
20883 {"MultiMedia6 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20884 {"MultiMedia6 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20885 {"MultiMedia6 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20886 {"MultiMedia6 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20887 {"MultiMedia6 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20888 {"MultiMedia6 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20889 {"MultiMedia6 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20890 {"MultiMedia6 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20891 {"MultiMedia6 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20892 {"MultiMedia6 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20893 {"MultiMedia6 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20894 {"MultiMedia6 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20895 {"MultiMedia6 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20896 {"MultiMedia6 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20897 {"MultiMedia6 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20898 {"MultiMedia6 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020899 {"MultiMedia6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20900 {"MultiMedia6 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20901 {"MultiMedia6 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20902 {"MultiMedia6 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020903 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20904 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20905 {"MultiMedia6 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20906 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20907 {"MultiMedia6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020908 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20909 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20910 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20911 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20912 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20913 {"MultiMedia6 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020914 {"MultiMedia6 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20915 {"MultiMedia6 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020916
20917 {"MultiMedia8 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20918 {"MultiMedia8 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20919 {"MultiMedia8 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
20920 {"MultiMedia8 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
20921 {"MultiMedia8 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
20922 {"MultiMedia8 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
20923 {"MultiMedia8 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
20924 {"MultiMedia8 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
20925 {"MultiMedia8 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20926 {"MultiMedia8 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20927 {"MultiMedia8 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20928 {"MultiMedia8 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20929 {"MultiMedia8 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20930 {"MultiMedia8 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20931 {"MultiMedia8 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20932 {"MultiMedia8 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020933 {"MultiMedia8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20934 {"MultiMedia8 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20935 {"MultiMedia8 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20936 {"MultiMedia8 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020937 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20938 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20939 {"MultiMedia8 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20940 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20941 {"MultiMedia8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020942 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20943 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20944 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20945 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20946 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20947 {"MultiMedia8 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020948 {"MultiMedia8 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20949 {"MultiMedia8 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020950
20951 {"MultiMedia9 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20952 {"MultiMedia9 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20953 {"MultiMedia9 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20954 {"MultiMedia9 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20955 {"MultiMedia9 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20956 {"MultiMedia9 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20957 {"MultiMedia9 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20958 {"MultiMedia9 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053020959 {"MultiMedia9 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
20960 {"MultiMedia9 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
20961 {"MultiMedia9 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
20962 {"MultiMedia9 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053020963 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
20964 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
20965 {"MultiMedia9 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
20966 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
20967 {"MultiMedia9 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020968 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20969 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20970 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20971 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20972 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20973 {"MultiMedia9 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020020974 {"MultiMedia9 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
20975 {"MultiMedia9 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020976
Laxminath Kasam38070be2017-08-17 18:21:59 +053020977 {"MultiMedia10 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
20978 {"MultiMedia10 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
20979 {"MultiMedia10 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
20980 {"MultiMedia10 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
20981 {"MultiMedia10 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
20982 {"MultiMedia10 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
20983 {"MultiMedia10 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
20984 {"MultiMedia10 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053020985 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
20986 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
20987 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
20988 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
20989 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
20990 {"MultiMedia10 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
20991
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020992 {"MultiMedia20 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
20993 {"MultiMedia20 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
20994 {"MultiMedia20 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
20995 {"MultiMedia20 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053020996 {"MultiMedia20 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053020997 {"MultiMedia20 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
20998 {"MultiMedia20 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
20999 {"MultiMedia20 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21000 {"MultiMedia20 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21001 {"MultiMedia20 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21002 {"MultiMedia20 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21003 {"MultiMedia20 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21004 {"MultiMedia20 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21005 {"MultiMedia20 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21006 {"MultiMedia20 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21007 {"MultiMedia20 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21008 {"MultiMedia20 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21009 {"MultiMedia20 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21010 {"MultiMedia20 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21011 {"MultiMedia20 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21012 {"MultiMedia20 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021013 {"MultiMedia20 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21014 {"MultiMedia20 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21015 {"MultiMedia20 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21016 {"MultiMedia20 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021017 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21018 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21019 {"MultiMedia20 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21020 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21021 {"MultiMedia20 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021022 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21023 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21024 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21025 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21026 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21027 {"MultiMedia20 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021028 {"MultiMedia20 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21029 {"MultiMedia20 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021030
Derek Chen07c6d1c2018-07-05 10:39:25 -070021031 {"MultiMedia21 Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21032 {"MultiMedia21 Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21033 {"MultiMedia21 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21034 {"MultiMedia21 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21035 {"MultiMedia21 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21036 {"MultiMedia21 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21037 {"MultiMedia21 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21038 {"MultiMedia21 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21039 {"MultiMedia21 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21040 {"MultiMedia21 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21041 {"MultiMedia21 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21042 {"MultiMedia21 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21043 {"MultiMedia21 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21044 {"MultiMedia21 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21045 {"MultiMedia21 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21046 {"MultiMedia21 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21047 {"MultiMedia21 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21048 {"MultiMedia21 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21049 {"MultiMedia21 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21050 {"MultiMedia21 Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21051 {"MultiMedia21 Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21052 {"MultiMedia21 Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Aditya Bavanari8ef5a482018-08-29 12:31:11 +053021053 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21054 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21055 {"MultiMedia21 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21056 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21057 {"MultiMedia21 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
21058 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21059 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21060 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21061 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21062 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21063 {"MultiMedia21 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21064 {"MultiMedia21 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21065 {"MultiMedia21 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021066
Surendar Karkac1cde372018-08-14 18:56:24 +053021067 {"MultiMedia27 Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
21068 {"MultiMedia27 Mixer", "SLIM_6_TX", "SLIMBUS_6_TX"},
21069 {"MultiMedia27 Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053021070 {"MultiMedia27 Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021071 {"MultiMedia27 Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21072 {"MultiMedia27 Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21073 {"MultiMedia27 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21074 {"MultiMedia27 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21075 {"MultiMedia27 Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
21076 {"MultiMedia27 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21077 {"MultiMedia27 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
21078
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021079 {"MultiMedia1 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21080 {"MultiMedia2 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21081 {"MultiMedia4 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21082 {"MultiMedia5 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21083 {"MultiMedia6 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
21084 {"MultiMedia8 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021085 {"MultiMedia10 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021086
Asish Bhattacharya34504582017-08-08 12:55:01 +053021087 {"MultiMedia16 Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21088 {"MultiMedia16 Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21089 {"MultiMedia16 Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21090 {"MultiMedia16 Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21091 {"MultiMedia16 Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
21092 {"MultiMedia16 Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
21093 {"MultiMedia16 Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
21094 {"MultiMedia16 Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
21095 {"MultiMedia16 Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
21096 {"MultiMedia16 Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
21097 {"MultiMedia16 Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
21098 {"MultiMedia16 Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
21099 {"MultiMedia16 Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21100 {"MultiMedia16 Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21101 {"MultiMedia16 Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21102 {"MultiMedia16 Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
21103 {"MultiMedia16 Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053021104 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
21105 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_1", "WSA_CDC_DMA_TX_1"},
21106 {"MultiMedia16 Mixer", "WSA_CDC_DMA_TX_2", "WSA_CDC_DMA_TX_2"},
21107 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21108 {"MultiMedia16 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021109 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21110 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21111 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21112 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21113 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21114 {"MultiMedia16 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
Ralf Herzc8701f72018-06-20 11:37:35 +020021115 {"MultiMedia16 Mixer", "PRI_SPDIF_TX", "PRI_SPDIF_TX"},
21116 {"MultiMedia16 Mixer", "SEC_SPDIF_TX", "SEC_SPDIF_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021117
Aditya Bavanari1e84a932018-06-18 19:40:08 +053021118 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21119 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21120 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21121 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21122 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21123 {"MultiMedia17 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21124
21125 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21126 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21127 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21128 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21129 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21130 {"MultiMedia18 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21131
21132 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21133 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21134 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21135 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21136 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21137 {"MultiMedia19 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21138
21139 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21140 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21141 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21142 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21143 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21144 {"MultiMedia28 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21145
21146 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_0", "TX_CDC_DMA_TX_0"},
21147 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_1", "TX_CDC_DMA_TX_1"},
21148 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_2", "TX_CDC_DMA_TX_2"},
21149 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
21150 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_4", "TX_CDC_DMA_TX_4"},
21151 {"MultiMedia29 Mixer", "TX_CDC_DMA_TX_5", "TX_CDC_DMA_TX_5"},
21152
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021153 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21154 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21155 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21156 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21157 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21158 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21159 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21160 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21161 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21162 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21163 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21164 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21165 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21166 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21167 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21168 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21169 {"INTERNAL_BT_SCO_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21170 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Audio Mixer"},
21171
21172 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21173 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21174 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21175 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21176 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21177 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21178 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21179 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21180 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21181 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21182 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21183 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21184 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21185 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21186 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21187 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21188 {"INTERNAL_A2DP_RX Audio Mixer", "MultiMedia6", "MM_UL6"},
21189 {"INT_BT_A2DP_RX", NULL, "INTERNAL_A2DP_RX Audio Mixer"},
21190
21191 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21192 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21193 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21194 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21195 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21196 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21197 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21198 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21199 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21200 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21201 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21202 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21203 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21204 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21205 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21206 {"INTERNAL_FM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21207 {"INT_FM_RX", NULL, "INTERNAL_FM_RX Audio Mixer"},
21208
21209 {"AFE_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21210 {"AFE_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21211 {"AFE_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21212 {"AFE_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21213 {"AFE_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21214 {"AFE_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21215 {"AFE_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21216 {"AFE_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21217 {"AFE_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21218 {"AFE_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21219 {"AFE_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21220 {"AFE_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21221 {"AFE_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21222 {"AFE_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21223 {"AFE_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21224 {"AFE_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21225 {"PCM_RX", NULL, "AFE_PCM_RX Audio Mixer"},
21226
21227 {"MultiMedia1 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21228 {"MultiMedia3 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21229 {"MultiMedia4 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021230 {"MultiMedia10 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021231 {"MultiMedia17 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21232 {"MultiMedia18 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21233 {"MultiMedia19 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021234 {"MultiMedia28 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21235 {"MultiMedia29 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021236 {"MultiMedia5 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21237 {"MultiMedia8 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021238 {"MultiMedia16 Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021239 {"MultiMedia1 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21240 {"MultiMedia4 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021241 {"MultiMedia16 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021242 {"MultiMedia17 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21243 {"MultiMedia18 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21244 {"MultiMedia19 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021245 {"MultiMedia28 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21246 {"MultiMedia29 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021247 {"MultiMedia5 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21248 {"MultiMedia6 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21249 {"MultiMedia8 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21250
21251 {"MultiMedia1 Mixer", "AFE_PCM_TX", "PCM_TX"},
21252 {"MultiMedia3 Mixer", "AFE_PCM_TX", "PCM_TX"},
21253 {"MultiMedia4 Mixer", "AFE_PCM_TX", "PCM_TX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021254 {"MultiMedia10 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021255 {"MultiMedia17 Mixer", "AFE_PCM_TX", "PCM_TX"},
21256 {"MultiMedia18 Mixer", "AFE_PCM_TX", "PCM_TX"},
21257 {"MultiMedia19 Mixer", "AFE_PCM_TX", "PCM_TX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021258 {"MultiMedia28 Mixer", "AFE_PCM_TX", "PCM_TX"},
21259 {"MultiMedia29 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021260 {"MultiMedia5 Mixer", "AFE_PCM_TX", "PCM_TX"},
21261 {"MultiMedia8 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021262 {"MultiMedia16 Mixer", "AFE_PCM_TX", "PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021263 {"MM_UL1", NULL, "MultiMedia1 Mixer"},
21264 {"MultiMedia2 Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21265 {"MM_UL2", NULL, "MultiMedia2 Mixer"},
21266 {"MM_UL3", NULL, "MultiMedia3 Mixer"},
21267 {"MM_UL4", NULL, "MultiMedia4 Mixer"},
21268 {"MM_UL5", NULL, "MultiMedia5 Mixer"},
21269 {"MM_UL6", NULL, "MultiMedia6 Mixer"},
21270 {"MM_UL8", NULL, "MultiMedia8 Mixer"},
21271 {"MM_UL9", NULL, "MultiMedia9 Mixer"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021272 {"MM_UL10", NULL, "MultiMedia10 Mixer"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021273 {"MM_UL16", NULL, "MultiMedia16 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021274 {"MM_UL17", NULL, "MultiMedia17 Mixer"},
21275 {"MM_UL18", NULL, "MultiMedia18 Mixer"},
21276 {"MM_UL19", NULL, "MultiMedia19 Mixer"},
21277 {"MM_UL20", NULL, "MultiMedia20 Mixer"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021278 {"MM_UL21", NULL, "MultiMedia21 Mixer"},
Surendar Karkac1cde372018-08-14 18:56:24 +053021279 {"MM_UL27", NULL, "MultiMedia27 Mixer"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021280 {"MM_UL28", NULL, "MultiMedia28 Mixer"},
21281 {"MM_UL29", NULL, "MultiMedia29 Mixer"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021282
21283 {"AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21284 {"AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21285 {"AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21286 {"AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21287 {"AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21288 {"AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21289 {"AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21290 {"AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21291 {"AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21292 {"AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21293 {"AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21294 {"AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21295 {"AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21296 {"AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21297 {"AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21298 {"AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021299 {"AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021300 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Audio Mixer"},
21301
21302 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21303 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21304 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21305 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21306 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21307 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21308 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21309 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21310 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21311 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21312 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21313 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21314 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21315 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21316 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21317 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
Derek Chen07c6d1c2018-07-05 10:39:25 -070021318 {"SEC_AUX_PCM_RX Audio Mixer", "MultiMedia21", "MM_DL21"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021319 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX Audio Mixer"},
21320
21321 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21322 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21323 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21324 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21325 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21326 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21327 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21328 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21329 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21330 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21331 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21332 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21333 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21334 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21335 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21336 {"TERT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21337 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX Audio Mixer"},
21338
21339 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21340 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21341 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21342 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21343 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21344 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21345 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21346 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21347 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21348 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21349 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21350 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21351 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21352 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21353 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21354 {"QUAT_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21355 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX Audio Mixer"},
21356
Rohit Kumara5077932017-09-10 22:05:05 +053021357 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia1", "MM_DL1"},
21358 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia2", "MM_DL2"},
21359 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia3", "MM_DL3"},
21360 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia4", "MM_DL4"},
21361 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia5", "MM_DL5"},
21362 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia6", "MM_DL6"},
21363 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia7", "MM_DL7"},
21364 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia8", "MM_DL8"},
21365 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia9", "MM_DL9"},
21366 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia10", "MM_DL10"},
21367 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia11", "MM_DL11"},
21368 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia12", "MM_DL12"},
21369 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia13", "MM_DL13"},
21370 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia14", "MM_DL14"},
21371 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia15", "MM_DL15"},
21372 {"QUIN_AUX_PCM_RX Audio Mixer", "MultiMedia16", "MM_DL16"},
21373 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX Audio Mixer"},
21374
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021375 {"PRI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21376 {"PRI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21377 {"PRI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21378 {"PRI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21379 {"PRI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21380 {"PRI_I2S_RX", NULL, "PRI_RX_Voice Mixer"},
21381
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021382 {"SEC_RX_Voice Mixer", "Voip", "VOIP_DL"},
21383 {"SEC_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21384 {"SEC_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21385 {"SEC_I2S_RX", NULL, "SEC_RX_Voice Mixer"},
21386
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021387 {"SEC_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21388 {"SEC_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21389 {"SEC_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21390 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21391 {"SEC_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21392 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_Voice Mixer"},
21393
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021394 {"SLIM_0_RX_Voice Mixer", "Voip", "VOIP_DL"},
21395 {"SLIM_0_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021396 {"SLIM_0_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21397 {"SLIM_0_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21398 {"SLIM_0_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21399 {"SLIMBUS_0_RX", NULL, "SLIM_0_RX_Voice Mixer"},
21400
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021401 {"SLIM_6_RX_Voice Mixer", "Voip", "VOIP_DL"},
21402 {"SLIM_6_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021403 {"SLIM_6_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21404 {"SLIM_6_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21405 {"SLIM_6_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21406 {"SLIMBUS_6_RX", NULL, "SLIM_6_RX_Voice Mixer"},
21407
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021408 {"USB_AUDIO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21409 {"USB_AUDIO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021410 {"USB_AUDIO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21411 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21412 {"USB_AUDIO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21413 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX_Voice Mixer"},
21414
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021415 {"DISPLAY_PORT_RX_Voice Mixer", "Voip", "VOIP_DL"},
21416 {"DISPLAY_PORT_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Aalique Grahamee4fd7d52017-11-28 13:24:13 -080021417 {"DISPLAY_PORT_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21418 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21419 {"DISPLAY_PORT_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21420 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX_Voice Mixer"},
21421
Karthikeyan Mani57550082018-05-03 18:43:58 -070021422 {"DISPLAY_PORT_RX1_Voice Mixer", "Voip", "VOIP_DL"},
21423 {"DISPLAY_PORT_RX1_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21424 {"DISPLAY_PORT_RX1_Voice Mixer", "QCHAT", "QCHAT_DL"},
21425 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21426 {"DISPLAY_PORT_RX1_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21427 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1_Voice Mixer"},
21428
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021429 {"INTERNAL_BT_SCO_RX_Voice Mixer", "Voip", "VOIP_DL"},
21430 {"INTERNAL_BT_SCO_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21431 {"INTERNAL_BT_SCO_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21432 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21433 {"INTERNAL_BT_SCO_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021434 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX_Voice Mixer"},
21435
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021436 {"AFE_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21437 {"AFE_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21438 {"AFE_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21439 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21440 {"AFE_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21441 {"PCM_RX", NULL, "AFE_PCM_RX_Voice Mixer"},
21442
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021443 {"AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21444 {"AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021445 {"AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21446 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21447 {"AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21448 {"AUX_PCM_RX", NULL, "AUX_PCM_RX_Voice Mixer"},
21449
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021450 {"SEC_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21451 {"SEC_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021452 {"SEC_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21453 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21454 {"SEC_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21455 {"SEC_AUX_PCM_RX", NULL, "SEC_AUX_PCM_RX_Voice Mixer"},
21456
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021457 {"TERT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21458 {"TERT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021459 {"TERT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21460 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21461 {"TERT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21462 {"TERT_AUX_PCM_RX", NULL, "TERT_AUX_PCM_RX_Voice Mixer"},
21463
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021464 {"QUAT_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21465 {"QUAT_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021466 {"QUAT_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21467 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21468 {"QUAT_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21469 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUX_PCM_RX_Voice Mixer"},
21470
Rohit Kumara5077932017-09-10 22:05:05 +053021471 {"QUIN_AUX_PCM_RX_Voice Mixer", "Voip", "VOIP_DL"},
21472 {"QUIN_AUX_PCM_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021473 {"QUIN_AUX_PCM_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21474 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21475 {"QUIN_AUX_PCM_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21476 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUX_PCM_RX_Voice Mixer"},
21477
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021478 {"HDMI_RX_Voice Mixer", "Voip", "VOIP_DL"},
21479 {"HDMI_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21480 {"HDMI_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21481 {"HDMI_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21482 {"HDMI_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21483 {"HDMI", NULL, "HDMI_RX_Voice Mixer"},
21484 {"HDMI", NULL, "HDMI_DL_HL"},
21485
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021486 {"MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021487 {"MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21488 {"MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21489 {"MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
kunleiz8a60b822017-10-11 15:04:02 +080021490 {"MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021491 {"MI2S_RX", NULL, "MI2S_RX_Voice Mixer"},
21492
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021493 {"PRI_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021494 {"PRI_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21495 {"PRI_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21496 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21497 {"PRI_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21498 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_Voice Mixer"},
21499
21500 {"INT0_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21501 {"INT0_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21502 {"INT0_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21503 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21504 {"INT0_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21505 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_Voice Mixer"},
21506
21507 {"INT4_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
21508 {"INT4_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21509 {"INT4_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21510 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21511 {"INT4_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21512 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_Voice Mixer"},
21513
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021514 {"TERT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021515 {"TERT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21516 {"TERT_MI2S_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
21517 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21518 {"TERT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21519 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_Voice Mixer"},
21520
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021521 {"QUAT_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021522 {"QUAT_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21523 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21524 {"QUAT_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21525 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_Voice Mixer"},
21526
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021527 {"QUIN_MI2S_RX_Voice Mixer", "Voip", "VOIP_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021528 {"QUIN_MI2S_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
21529 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21530 {"QUIN_MI2S_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21531 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_Voice Mixer"},
21532
21533 {"QUAT_TDM_RX_2_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21534 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_Voice Mixer"},
21535
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021536 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21537 {"WSA_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21538 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_Voice Mixer"},
21539
21540 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
21541 {"RX_CDC_DMA_RX_0_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
21542 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_Voice Mixer"},
21543
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021544 {"VOC_EXT_EC MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21545 {"VOC_EXT_EC MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21546 {"VOC_EXT_EC MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21547 {"VOC_EXT_EC MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021548 {"VOC_EXT_EC MUX", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021549 {"VOC_EXT_EC MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
Karthikeyan Mania1eb9382018-07-25 10:52:58 -070021550 {"VOC_EXT_EC MUX", "SEC_TDM_TX", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021551 {"VOIP_UL", NULL, "VOC_EXT_EC MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021552 {"VOICEMMODE1_UL", NULL, "VOC_EXT_EC MUX"},
21553 {"VOICEMMODE2_UL", NULL, "VOC_EXT_EC MUX"},
21554
21555 {"AUDIO_REF_EC_UL1 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21556 {"AUDIO_REF_EC_UL1 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21557 {"AUDIO_REF_EC_UL1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21558 {"AUDIO_REF_EC_UL1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21559 {"AUDIO_REF_EC_UL1 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21560 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21561 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21562 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21563 {"AUDIO_REF_EC_UL1 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21564 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021565 {"AUDIO_REF_EC_UL1 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21566 {"AUDIO_REF_EC_UL1 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021567
21568 {"AUDIO_REF_EC_UL2 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21569 {"AUDIO_REF_EC_UL2 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21570 {"AUDIO_REF_EC_UL2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21571 {"AUDIO_REF_EC_UL2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21572
21573 {"AUDIO_REF_EC_UL3 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21574 {"AUDIO_REF_EC_UL3 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21575 {"AUDIO_REF_EC_UL3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21576 {"AUDIO_REF_EC_UL3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21577
21578 {"AUDIO_REF_EC_UL4 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21579 {"AUDIO_REF_EC_UL4 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21580 {"AUDIO_REF_EC_UL4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21581 {"AUDIO_REF_EC_UL4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21582
21583 {"AUDIO_REF_EC_UL5 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21584 {"AUDIO_REF_EC_UL5 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21585 {"AUDIO_REF_EC_UL5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21586 {"AUDIO_REF_EC_UL5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21587
21588 {"AUDIO_REF_EC_UL6 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21589 {"AUDIO_REF_EC_UL6 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21590 {"AUDIO_REF_EC_UL6 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21591 {"AUDIO_REF_EC_UL6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21592
21593 {"AUDIO_REF_EC_UL8 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21594 {"AUDIO_REF_EC_UL8 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21595 {"AUDIO_REF_EC_UL8 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21596 {"AUDIO_REF_EC_UL8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21597
21598 {"AUDIO_REF_EC_UL9 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21599 {"AUDIO_REF_EC_UL9 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21600 {"AUDIO_REF_EC_UL9 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21601 {"AUDIO_REF_EC_UL9 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21602
Laxminath Kasam38070be2017-08-17 18:21:59 +053021603 {"AUDIO_REF_EC_UL10 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21604 {"AUDIO_REF_EC_UL10 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21605 {"AUDIO_REF_EC_UL10 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21606 {"AUDIO_REF_EC_UL10 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21607 {"AUDIO_REF_EC_UL10 MUX", "SLIM_1_TX", "SLIMBUS_1_TX"},
21608 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21609 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_0", "QUAT_TDM_RX_0"},
21610 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_1", "QUAT_TDM_RX_1"},
21611 {"AUDIO_REF_EC_UL10 MUX", "QUAT_TDM_RX_2", "QUAT_TDM_RX_2"},
21612 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
Derek Chen2bb55772018-10-24 00:17:15 -070021613 {"AUDIO_REF_EC_UL10 MUX", "TERT_TDM_RX_2", "TERT_TDM_RX_2"},
21614 {"AUDIO_REF_EC_UL10 MUX", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
Vikram Panduranga016c49f2017-09-11 15:15:56 -070021615
21616 {"AUDIO_REF_EC_UL16 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21617 {"AUDIO_REF_EC_UL16 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21618 {"AUDIO_REF_EC_UL16 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21619 {"AUDIO_REF_EC_UL16 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21620
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021621 {"AUDIO_REF_EC_UL17 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21622 {"AUDIO_REF_EC_UL17 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21623 {"AUDIO_REF_EC_UL17 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21624 {"AUDIO_REF_EC_UL17 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21625
21626 {"AUDIO_REF_EC_UL18 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21627 {"AUDIO_REF_EC_UL18 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21628 {"AUDIO_REF_EC_UL18 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21629 {"AUDIO_REF_EC_UL18 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21630
21631 {"AUDIO_REF_EC_UL19 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21632 {"AUDIO_REF_EC_UL19 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21633 {"AUDIO_REF_EC_UL19 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21634 {"AUDIO_REF_EC_UL19 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21635
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021636 {"AUDIO_REF_EC_UL28 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21637 {"AUDIO_REF_EC_UL28 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21638 {"AUDIO_REF_EC_UL28 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21639 {"AUDIO_REF_EC_UL28 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21640
21641 {"AUDIO_REF_EC_UL29 MUX", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21642 {"AUDIO_REF_EC_UL29 MUX", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21643 {"AUDIO_REF_EC_UL29 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21644 {"AUDIO_REF_EC_UL29 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Yunfei Zhang3efc4a22017-11-07 16:30:13 +080021645
21646 {"LSM1_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21647 {"LSM2_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21648 {"LSM3_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21649 {"LSM4_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21650 {"LSM5_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21651 {"LSM6_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21652 {"LSM7_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21653 {"LSM8_UL_HL", NULL, "AUDIO_REF_EC_UL1 MUX"},
21654
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021655 {"MM_UL1", NULL, "AUDIO_REF_EC_UL1 MUX"},
21656 {"MM_UL2", NULL, "AUDIO_REF_EC_UL2 MUX"},
21657 {"MM_UL3", NULL, "AUDIO_REF_EC_UL3 MUX"},
21658 {"MM_UL4", NULL, "AUDIO_REF_EC_UL4 MUX"},
21659 {"MM_UL5", NULL, "AUDIO_REF_EC_UL5 MUX"},
21660 {"MM_UL6", NULL, "AUDIO_REF_EC_UL6 MUX"},
21661 {"MM_UL8", NULL, "AUDIO_REF_EC_UL8 MUX"},
21662 {"MM_UL9", NULL, "AUDIO_REF_EC_UL9 MUX"},
Laxminath Kasam38070be2017-08-17 18:21:59 +053021663 {"MM_UL10", NULL, "AUDIO_REF_EC_UL10 MUX"},
Asish Bhattacharya34504582017-08-08 12:55:01 +053021664 {"MM_UL16", NULL, "AUDIO_REF_EC_UL16 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021665 {"MM_UL17", NULL, "AUDIO_REF_EC_UL17 MUX"},
21666 {"MM_UL18", NULL, "AUDIO_REF_EC_UL18 MUX"},
21667 {"MM_UL19", NULL, "AUDIO_REF_EC_UL19 MUX"},
Sachin Mohan Gadag7c944232018-01-04 11:04:00 +053021668 {"MM_UL28", NULL, "AUDIO_REF_EC_UL28 MUX"},
21669 {"MM_UL29", NULL, "AUDIO_REF_EC_UL29 MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021670
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021671 {"VoiceMMode1_Tx Mixer", "PRI_TX_MMode1", "PRI_I2S_TX"},
21672 {"VoiceMMode1_Tx Mixer", "PRI_MI2S_TX_MMode1", "PRI_MI2S_TX"},
21673 {"VoiceMMode1_Tx Mixer", "MI2S_TX_MMode1", "MI2S_TX"},
21674 {"VoiceMMode1_Tx Mixer", "TERT_MI2S_TX_MMode1", "TERT_MI2S_TX"},
21675 {"VoiceMMode1_Tx Mixer", "INT3_MI2S_TX_MMode1", "INT3_MI2S_TX"},
21676 {"VoiceMMode1_Tx Mixer", "SLIM_0_TX_MMode1", "SLIMBUS_0_TX"},
21677 {"VoiceMMode1_Tx Mixer", "SLIM_7_TX_MMode1", "SLIMBUS_7_TX"},
21678 {"VoiceMMode1_Tx Mixer", "SLIM_8_TX_MMode1", "SLIMBUS_8_TX"},
21679 {"VoiceMMode1_Tx Mixer", "USB_AUDIO_TX_MMode1", "USB_AUDIO_TX"},
21680 {"VoiceMMode1_Tx Mixer", "INT_BT_SCO_TX_MMode1", "INT_BT_SCO_TX"},
21681 {"VoiceMMode1_Tx Mixer", "AFE_PCM_TX_MMode1", "PCM_TX"},
21682 {"VoiceMMode1_Tx Mixer", "AUX_PCM_TX_MMode1", "AUX_PCM_TX"},
21683 {"VoiceMMode1_Tx Mixer", "SEC_AUX_PCM_TX_MMode1", "SEC_AUX_PCM_TX"},
21684 {"VoiceMMode1_Tx Mixer", "TERT_AUX_PCM_TX_MMode1", "TERT_AUX_PCM_TX"},
21685 {"VoiceMMode1_Tx Mixer", "QUAT_AUX_PCM_TX_MMode1", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021686 {"VoiceMMode1_Tx Mixer", "QUIN_AUX_PCM_TX_MMode1", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021687 {"VoiceMMode1_Tx Mixer", "QUAT_TDM_TX_0_MMode1", "QUAT_TDM_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021688 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_0_MMode1", "TX_CDC_DMA_TX_0"},
21689 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_1_MMode1", "TX_CDC_DMA_TX_1"},
21690 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_2_MMode1", "TX_CDC_DMA_TX_2"},
21691 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_3_MMode1", "TX_CDC_DMA_TX_3"},
21692 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_4_MMode1", "TX_CDC_DMA_TX_4"},
21693 {"VoiceMMode1_Tx Mixer", "TX_CDC_DMA_TX_5_MMode1", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021694 {"VOICEMMODE1_UL", NULL, "VoiceMMode1_Tx Mixer"},
21695
21696 {"VoiceMMode2_Tx Mixer", "PRI_TX_MMode2", "PRI_I2S_TX"},
21697 {"VoiceMMode2_Tx Mixer", "PRI_MI2S_TX_MMode2", "PRI_MI2S_TX"},
21698 {"VoiceMMode2_Tx Mixer", "MI2S_TX_MMode2", "MI2S_TX"},
21699 {"VoiceMMode2_Tx Mixer", "TERT_MI2S_TX_MMode2", "TERT_MI2S_TX"},
21700 {"VoiceMMode2_Tx Mixer", "INT3_MI2S_TX_MMode2", "INT3_MI2S_TX"},
21701 {"VoiceMMode2_Tx Mixer", "SLIM_0_TX_MMode2", "SLIMBUS_0_TX"},
21702 {"VoiceMMode2_Tx Mixer", "SLIM_7_TX_MMode2", "SLIMBUS_7_TX"},
21703 {"VoiceMMode2_Tx Mixer", "SLIM_8_TX_MMode2", "SLIMBUS_8_TX"},
21704 {"VoiceMMode2_Tx Mixer", "USB_AUDIO_TX_MMode2", "USB_AUDIO_TX"},
21705 {"VoiceMMode2_Tx Mixer", "INT_BT_SCO_TX_MMode2", "INT_BT_SCO_TX"},
21706 {"VoiceMMode2_Tx Mixer", "AFE_PCM_TX_MMode2", "PCM_TX"},
21707 {"VoiceMMode2_Tx Mixer", "AUX_PCM_TX_MMode2", "AUX_PCM_TX"},
21708 {"VoiceMMode2_Tx Mixer", "SEC_AUX_PCM_TX_MMode2", "SEC_AUX_PCM_TX"},
21709 {"VoiceMMode2_Tx Mixer", "TERT_AUX_PCM_TX_MMode2", "TERT_AUX_PCM_TX"},
21710 {"VoiceMMode2_Tx Mixer", "QUAT_AUX_PCM_TX_MMode2", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021711 {"VoiceMMode2_Tx Mixer", "QUIN_AUX_PCM_TX_MMode2", "QUIN_AUX_PCM_TX"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021712 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_0_MMode2", "TX_CDC_DMA_TX_0"},
21713 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_1_MMode2", "TX_CDC_DMA_TX_1"},
21714 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_2_MMode2", "TX_CDC_DMA_TX_2"},
21715 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_3_MMode2", "TX_CDC_DMA_TX_3"},
21716 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_4_MMode2", "TX_CDC_DMA_TX_4"},
21717 {"VoiceMMode2_Tx Mixer", "TX_CDC_DMA_TX_5_MMode2", "TX_CDC_DMA_TX_5"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021718 {"VOICEMMODE2_UL", NULL, "VoiceMMode2_Tx Mixer"},
21719
21720 {"Voip_Tx Mixer", "PRI_TX_Voip", "PRI_I2S_TX"},
21721 {"Voip_Tx Mixer", "MI2S_TX_Voip", "MI2S_TX"},
21722 {"Voip_Tx Mixer", "TERT_MI2S_TX_Voip", "TERT_MI2S_TX"},
21723 {"Voip_Tx Mixer", "INT3_MI2S_TX_Voip", "INT3_MI2S_TX"},
21724 {"Voip_Tx Mixer", "SLIM_0_TX_Voip", "SLIMBUS_0_TX"},
21725 {"Voip_Tx Mixer", "SLIM_7_TX_Voip", "SLIMBUS_7_TX"},
21726 {"Voip_Tx Mixer", "SLIM_8_TX_Voip", "SLIMBUS_8_TX"},
21727 {"Voip_Tx Mixer", "USB_AUDIO_TX_Voip", "USB_AUDIO_TX"},
21728 {"Voip_Tx Mixer", "INTERNAL_BT_SCO_TX_Voip", "INT_BT_SCO_TX"},
21729 {"Voip_Tx Mixer", "AFE_PCM_TX_Voip", "PCM_TX"},
21730 {"Voip_Tx Mixer", "AUX_PCM_TX_Voip", "AUX_PCM_TX"},
21731 {"Voip_Tx Mixer", "SEC_AUX_PCM_TX_Voip", "SEC_AUX_PCM_TX"},
21732 {"Voip_Tx Mixer", "TERT_AUX_PCM_TX_Voip", "TERT_AUX_PCM_TX"},
21733 {"Voip_Tx Mixer", "QUAT_AUX_PCM_TX_Voip", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021734 {"Voip_Tx Mixer", "QUIN_AUX_PCM_TX_Voip", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021735 {"Voip_Tx Mixer", "PRI_MI2S_TX_Voip", "PRI_MI2S_TX"},
21736 {"VOIP_UL", NULL, "Voip_Tx Mixer"},
21737
21738 {"SLIMBUS_DL_HL", "Switch", "SLIM0_DL_HL"},
21739 {"SLIMBUS_0_RX", NULL, "SLIMBUS_DL_HL"},
21740 {"SLIMBUS1_DL_HL", "Switch", "SLIM1_DL_HL"},
21741 {"SLIMBUS_1_RX", NULL, "SLIMBUS1_DL_HL"},
21742 {"SLIMBUS3_DL_HL", "Switch", "SLIM3_DL_HL"},
21743 {"SLIMBUS_3_RX", NULL, "SLIMBUS3_DL_HL"},
21744 {"SLIMBUS4_DL_HL", "Switch", "SLIM4_DL_HL"},
21745 {"SLIMBUS_4_RX", NULL, "SLIMBUS4_DL_HL"},
21746 {"SLIMBUS6_DL_HL", "Switch", "SLIM0_DL_HL"},
21747 {"SLIMBUS_6_RX", NULL, "SLIMBUS6_DL_HL"},
21748 {"SLIM0_UL_HL", NULL, "SLIMBUS_0_TX"},
21749 {"SLIM1_UL_HL", NULL, "SLIMBUS_1_TX"},
21750 {"SLIM3_UL_HL", NULL, "SLIMBUS_3_TX"},
21751 {"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
21752 {"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
Mangesh Kunchamwar91c21732018-07-10 17:02:46 +053021753 {"WSA_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21754 {"WSA_CDC_DMA_RX_0", NULL, "WSA_CDC_DMA_RX_0_DL_HL"},
21755 {"CDC_DMA_UL_HL", NULL, "VA_CDC_DMA_TX_0"},
Aditya Bavanari54ca7d12018-08-08 13:59:54 +053021756 {"RX_CDC_DMA_RX_0_DL_HL", "Switch", "CDC_DMA_DL_HL"},
21757 {"RX_CDC_DMA_RX_0", NULL, "RX_CDC_DMA_RX_0_DL_HL"},
21758 {"TX3_CDC_DMA_UL_HL", NULL, "TX_CDC_DMA_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021759 {"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21760 {"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21761 {"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21762 {"LSM1 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21763 {"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21764 {"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21765 {"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21766 {"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021767 {"LSM1 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21768 {"LSM1 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021769 {"LSM1 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021770 {"LSM1 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021771 {"LSM1_UL_HL", NULL, "LSM1 Mixer"},
21772
21773 {"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21774 {"LSM2 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21775 {"LSM2 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21776 {"LSM2 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21777 {"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21778 {"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21779 {"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21780 {"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021781 {"LSM2 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21782 {"LSM2 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021783 {"LSM2 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021784 {"LSM2 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021785 {"LSM2_UL_HL", NULL, "LSM2 Mixer"},
21786
21787
21788 {"LSM3 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21789 {"LSM3 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21790 {"LSM3 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21791 {"LSM3 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21792 {"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21793 {"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21794 {"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21795 {"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021796 {"LSM3 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21797 {"LSM3 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021798 {"LSM3 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021799 {"LSM3 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021800 {"LSM3_UL_HL", NULL, "LSM3 Mixer"},
21801
21802
21803 {"LSM4 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21804 {"LSM4 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21805 {"LSM4 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21806 {"LSM4 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21807 {"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21808 {"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21809 {"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21810 {"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021811 {"LSM4 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21812 {"LSM4 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021813 {"LSM4 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021814 {"LSM4 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021815 {"LSM4_UL_HL", NULL, "LSM4 Mixer"},
21816
21817 {"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21818 {"LSM5 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21819 {"LSM5 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21820 {"LSM5 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21821 {"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21822 {"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
21823 {"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21824 {"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021825 {"LSM5 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21826 {"LSM5 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021827 {"LSM5 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021828 {"LSM5 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021829 {"LSM5_UL_HL", NULL, "LSM5 Mixer"},
21830
21831 {"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21832 {"LSM6 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21833 {"LSM6 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21834 {"LSM6 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21835 {"LSM6 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21836 {"LSM6 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021837 {"LSM6 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21838 {"LSM6 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021839 {"LSM6 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021840 {"LSM6 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021841 {"LSM6_UL_HL", NULL, "LSM6 Mixer"},
21842
21843 {"LSM7 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21844 {"LSM7 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21845 {"LSM7 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21846 {"LSM7 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21847 {"LSM7 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21848 {"LSM7 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021849 {"LSM7 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21850 {"LSM7 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021851 {"LSM7 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021852 {"LSM7 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021853 {"LSM7_UL_HL", NULL, "LSM7 Mixer"},
21854
21855 {"LSM8 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
21856 {"LSM8 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
21857 {"LSM8 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
21858 {"LSM8 Mixer", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
21859 {"LSM8 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
21860 {"LSM8 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Mangesh Kunchamwar637d6122018-06-13 20:19:21 +053021861 {"LSM8 Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
21862 {"LSM8 Mixer", "VA_CDC_DMA_TX_1", "VA_CDC_DMA_TX_1"},
Aditya Bavanarie9454c62018-08-23 23:45:20 +053021863 {"LSM8 Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Mangesh Kunchamwar52a8c3f2018-09-19 13:17:01 +053021864 {"LSM8 Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021865 {"LSM8_UL_HL", NULL, "LSM8 Mixer"},
21866
21867
21868 {"CPE_LSM_UL_HL", NULL, "BE_IN"},
21869 {"QCHAT_Tx Mixer", "PRI_TX_QCHAT", "PRI_I2S_TX"},
21870 {"QCHAT_Tx Mixer", "SLIM_0_TX_QCHAT", "SLIMBUS_0_TX"},
21871 {"QCHAT_Tx Mixer", "SLIM_7_TX_QCHAT", "SLIMBUS_7_TX"},
21872 {"QCHAT_Tx Mixer", "SLIM_8_TX_QCHAT", "SLIMBUS_8_TX"},
21873 {"QCHAT_Tx Mixer", "INTERNAL_BT_SCO_TX_QCHAT", "INT_BT_SCO_TX"},
21874 {"QCHAT_Tx Mixer", "AFE_PCM_TX_QCHAT", "PCM_TX"},
21875 {"QCHAT_Tx Mixer", "AUX_PCM_TX_QCHAT", "AUX_PCM_TX"},
21876 {"QCHAT_Tx Mixer", "SEC_AUX_PCM_TX_QCHAT", "SEC_AUX_PCM_TX"},
21877 {"QCHAT_Tx Mixer", "TERT_AUX_PCM_TX_QCHAT", "TERT_AUX_PCM_TX"},
21878 {"QCHAT_Tx Mixer", "QUAT_AUX_PCM_TX_QCHAT", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053021879 {"QCHAT_Tx Mixer", "QUIN_AUX_PCM_TX_QCHAT", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021880 {"QCHAT_Tx Mixer", "MI2S_TX_QCHAT", "MI2S_TX"},
21881 {"QCHAT_Tx Mixer", "PRI_MI2S_TX_QCHAT", "PRI_MI2S_TX"},
21882 {"QCHAT_Tx Mixer", "TERT_MI2S_TX_QCHAT", "TERT_MI2S_TX"},
21883 {"QCHAT_Tx Mixer", "INT3_MI2S_TX_QCHAT", "INT3_MI2S_TX"},
21884 {"QCHAT_Tx Mixer", "USB_AUDIO_TX_QCHAT", "USB_AUDIO_TX"},
21885 {"QCHAT_UL", NULL, "QCHAT_Tx Mixer"},
21886
21887 {"INT_FM_RX", NULL, "INTFM_DL_HL"},
21888 {"INTFM_UL_HL", NULL, "INT_FM_TX"},
21889 {"INTHFP_UL_HL", NULL, "HFP_PRI_AUX_UL_HL"},
21890 {"HFP_PRI_AUX_UL_HL", "Switch", "AUX_PCM_TX"},
21891 {"INTHFP_UL_HL", NULL, "HFP_AUX_UL_HL"},
21892 {"HFP_AUX_UL_HL", "Switch", "SEC_AUX_PCM_TX"},
21893 {"INTHFP_UL_HL", NULL, "HFP_INT_UL_HL"},
21894 {"HFP_INT_UL_HL", "Switch", "INT_BT_SCO_TX"},
21895 {"SLIM7_UL_HL", NULL, "HFP_SLIM7_UL_HL"},
21896 {"HFP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
21897 {"AUX_PCM_RX", NULL, "AUXPCM_DL_HL"},
21898 {"AUX_PCM_RX", NULL, "INTHFP_DL_HL"},
Aniket Kumar Latac0c31472018-02-22 14:46:09 -080021899 {"SLIM7_UL_HL", NULL, "A2DP_SLIM7_UL_HL"},
21900 {"A2DP_SLIM7_UL_HL", "Switch", "SLIMBUS_7_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021901 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021902 {"AUXPCM_UL_HL", NULL, "AUX_PCM_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080021903 {"SEC_AUXPCM_UL_HL", NULL, "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021904 {"MI2S_RX", NULL, "MI2S_DL_HL"},
21905 {"MI2S_UL_HL", NULL, "MI2S_TX"},
21906 {"PCM_RX_DL_HL", "Switch", "SLIM0_DL_HL"},
21907 {"PCM_RX", NULL, "PCM_RX_DL_HL"},
21908
21909 /* connect to INT4_MI2S_DL_HL since same pcm_id */
21910 {"INT0_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21911 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX_DL_HL"},
21912 {"INT4_MI2S_RX_DL_HL", "Switch", "INT4_MI2S_DL_HL"},
21913 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_DL_HL"},
21914 {"PRI_MI2S_RX_DL_HL", "Switch", "PRI_MI2S_DL_HL"},
21915 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_DL_HL"},
21916 {"SEC_MI2S_RX_DL_HL", "Switch", "SEC_MI2S_DL_HL"},
21917 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX_DL_HL"},
21918 {"TERT_MI2S_RX_DL_HL", "Switch", "TERT_MI2S_DL_HL"},
21919 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX_DL_HL"},
21920
21921 {"QUAT_MI2S_RX_DL_HL", "Switch", "QUAT_MI2S_DL_HL"},
21922 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021923 {"QUIN_MI2S_RX_DL_HL", "Switch", "QUIN_MI2S_DL_HL"},
21924 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021925 {"MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21926 {"INT3_MI2S_UL_HL", NULL, "INT3_MI2S_TX"},
21927 {"TERT_MI2S_UL_HL", NULL, "TERT_MI2S_TX"},
21928 {"SEC_I2S_RX", NULL, "SEC_I2S_DL_HL"},
21929 {"PRI_MI2S_UL_HL", NULL, "PRI_MI2S_TX"},
21930 {"SEC_MI2S_UL_HL", NULL, "SEC_MI2S_TX"},
21931 {"SEC_MI2S_RX", NULL, "SEC_MI2S_DL_HL"},
21932 {"PRI_MI2S_RX", NULL, "PRI_MI2S_DL_HL"},
21933 {"TERT_MI2S_RX", NULL, "TERT_MI2S_DL_HL"},
21934 {"QUAT_MI2S_UL_HL", NULL, "QUAT_MI2S_TX"},
21935
21936 {"PRI_TDM_TX_0_UL_HL", NULL, "PRI_TDM_TX_0"},
21937 {"PRI_TDM_TX_1_UL_HL", NULL, "PRI_TDM_TX_1"},
21938 {"PRI_TDM_TX_2_UL_HL", NULL, "PRI_TDM_TX_2"},
21939 {"PRI_TDM_TX_3_UL_HL", NULL, "PRI_TDM_TX_3"},
21940 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0_DL_HL"},
21941 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1_DL_HL"},
21942 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2_DL_HL"},
21943 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3_DL_HL"},
21944 {"SEC_TDM_TX_0_UL_HL", NULL, "SEC_TDM_TX_0"},
21945 {"SEC_TDM_TX_1_UL_HL", NULL, "SEC_TDM_TX_1"},
21946 {"SEC_TDM_TX_2_UL_HL", NULL, "SEC_TDM_TX_2"},
21947 {"SEC_TDM_TX_3_UL_HL", NULL, "SEC_TDM_TX_3"},
21948 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0_DL_HL"},
21949 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1_DL_HL"},
21950 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2_DL_HL"},
21951 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3_DL_HL"},
Derek Chenfdcc0982018-10-02 15:14:03 -070021952 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021953 {"TERT_TDM_TX_0_UL_HL", NULL, "TERT_TDM_TX_0"},
21954 {"TERT_TDM_TX_1_UL_HL", NULL, "TERT_TDM_TX_1"},
21955 {"TERT_TDM_TX_2_UL_HL", NULL, "TERT_TDM_TX_2"},
21956 {"TERT_TDM_TX_3_UL_HL", NULL, "TERT_TDM_TX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070021957 {"TERT_TDM_TX_7_UL_HL", NULL, "TERT_TDM_TX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021958 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0_DL_HL"},
21959 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1_DL_HL"},
21960 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2_DL_HL"},
21961 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3_DL_HL"},
21962 {"QUAT_TDM_TX_0_UL_HL", NULL, "QUAT_TDM_TX_0"},
21963 {"QUAT_TDM_TX_1_UL_HL", NULL, "QUAT_TDM_TX_1"},
21964 {"QUAT_TDM_TX_2_UL_HL", NULL, "QUAT_TDM_TX_2"},
21965 {"QUAT_TDM_TX_3_UL_HL", NULL, "QUAT_TDM_TX_3"},
21966 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0_DL_HL"},
21967 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1_DL_HL"},
21968 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2_DL_HL"},
21969 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3_DL_HL"},
Rohit Kumara5077932017-09-10 22:05:05 +053021970 {"QUIN_TDM_TX_0_UL_HL", NULL, "QUIN_TDM_TX_0"},
21971 {"QUIN_TDM_TX_1_UL_HL", NULL, "QUIN_TDM_TX_1"},
21972 {"QUIN_TDM_TX_2_UL_HL", NULL, "QUIN_TDM_TX_2"},
21973 {"QUIN_TDM_TX_3_UL_HL", NULL, "QUIN_TDM_TX_3"},
21974 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0_DL_HL"},
21975 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1_DL_HL"},
21976 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2_DL_HL"},
21977 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021978
21979 {"PRI_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
21980 {"PRI_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
21981 {"PRI_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
21982 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
21983 {"PRI_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
21984 {"PRI_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
21985 {"PRI_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
21986 {"PRI_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
21987 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
21988 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
21989 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
21990 {"PRI_TDM_RX_0 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
21991 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
21992 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
21993 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
21994 {"PRI_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053021995 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
21996 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
21997 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
21998 {"PRI_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053021999 {"PRI_TDM_RX_0", NULL, "PRI_TDM_RX_0 Port Mixer"},
22000
22001 {"PRI_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22002 {"PRI_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22003 {"PRI_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22004 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22005 {"PRI_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22006 {"PRI_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22007 {"PRI_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22008 {"PRI_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22009 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22010 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22011 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22012 {"PRI_TDM_RX_1 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22013 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22014 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22015 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22016 {"PRI_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022017 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22018 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22019 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22020 {"PRI_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022021 {"PRI_TDM_RX_1", NULL, "PRI_TDM_RX_1 Port Mixer"},
22022
22023 {"PRI_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22024 {"PRI_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22025 {"PRI_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22026 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22027 {"PRI_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22028 {"PRI_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22029 {"PRI_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22030 {"PRI_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22031 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22032 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22033 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22034 {"PRI_TDM_RX_2 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22035 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22036 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22037 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22038 {"PRI_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022039 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22040 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22041 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22042 {"PRI_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022043 {"PRI_TDM_RX_2", NULL, "PRI_TDM_RX_2 Port Mixer"},
22044
22045 {"PRI_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22046 {"PRI_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22047 {"PRI_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22048 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22049 {"PRI_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22050 {"PRI_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22051 {"PRI_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22052 {"PRI_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22053 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_0", "PRI_TDM_TX_0"},
22054 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_1", "PRI_TDM_TX_1"},
22055 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_2", "PRI_TDM_TX_2"},
22056 {"PRI_TDM_RX_3 Port Mixer", "PRI_TDM_TX_3", "PRI_TDM_TX_3"},
22057 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22058 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22059 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22060 {"PRI_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022061 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22062 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22063 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22064 {"PRI_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022065 {"PRI_TDM_RX_3", NULL, "PRI_TDM_RX_3 Port Mixer"},
22066
22067 {"SEC_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22068 {"SEC_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22069 {"SEC_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22070 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22071 {"SEC_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22072 {"SEC_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22073 {"SEC_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22074 {"SEC_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22075 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22076 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22077 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22078 {"SEC_TDM_RX_0 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22079 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22080 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22081 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22082 {"SEC_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022083 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22084 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22085 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22086 {"SEC_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022087 {"SEC_TDM_RX_0", NULL, "SEC_TDM_RX_0 Port Mixer"},
22088
22089 {"SEC_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22090 {"SEC_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22091 {"SEC_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22092 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22093 {"SEC_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22094 {"SEC_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22095 {"SEC_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22096 {"SEC_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22097 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22098 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22099 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22100 {"SEC_TDM_RX_1 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22101 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22102 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22103 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22104 {"SEC_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022105 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22106 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22107 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22108 {"SEC_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022109 {"SEC_TDM_RX_1", NULL, "SEC_TDM_RX_1 Port Mixer"},
22110
22111 {"SEC_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22112 {"SEC_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22113 {"SEC_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22114 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22115 {"SEC_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22116 {"SEC_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22117 {"SEC_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22118 {"SEC_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22119 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22120 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22121 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22122 {"SEC_TDM_RX_2 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22123 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22124 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22125 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22126 {"SEC_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022127 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22128 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22129 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22130 {"SEC_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022131 {"SEC_TDM_RX_2", NULL, "SEC_TDM_RX_2 Port Mixer"},
22132
22133 {"SEC_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22134 {"SEC_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22135 {"SEC_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22136 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22137 {"SEC_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22138 {"SEC_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22139 {"SEC_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22140 {"SEC_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22141 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_0", "SEC_TDM_TX_0"},
22142 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_1", "SEC_TDM_TX_1"},
22143 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_2", "SEC_TDM_TX_2"},
22144 {"SEC_TDM_RX_3 Port Mixer", "SEC_TDM_TX_3", "SEC_TDM_TX_3"},
22145 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22146 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22147 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22148 {"SEC_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022149 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22150 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22151 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22152 {"SEC_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022153 {"SEC_TDM_RX_3", NULL, "SEC_TDM_RX_3 Port Mixer"},
22154
Derek Chenfdcc0982018-10-02 15:14:03 -070022155 {"SEC_TDM_RX_7 Port Mixer", "TERT_TDM_TX_7", "TERT_TDM_TX_7"},
22156 {"SEC_TDM_RX_7", NULL, "SEC_TDM_RX_7 Port Mixer"},
22157
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022158 {"TERT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22159 {"TERT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22160 {"TERT_TDM_RX_0 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22161 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22162 {"TERT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22163 {"TERT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22164 {"TERT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22165 {"TERT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22166 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22167 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22168 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22169 {"TERT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22170 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22171 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22172 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22173 {"TERT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022174 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22175 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22176 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22177 {"TERT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022178 {"TERT_TDM_RX_0", NULL, "TERT_TDM_RX_0 Port Mixer"},
22179
22180 {"TERT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22181 {"TERT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22182 {"TERT_TDM_RX_1 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22183 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22184 {"TERT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22185 {"TERT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22186 {"TERT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22187 {"TERT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22188 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22189 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22190 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22191 {"TERT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22192 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22193 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22194 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22195 {"TERT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022196 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22197 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22198 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22199 {"TERT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022200 {"TERT_TDM_RX_1", NULL, "TERT_TDM_RX_1 Port Mixer"},
22201
22202 {"TERT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22203 {"TERT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22204 {"TERT_TDM_RX_2 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22205 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22206 {"TERT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22207 {"TERT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22208 {"TERT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22209 {"TERT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22210 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22211 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22212 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22213 {"TERT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22214 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22215 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22216 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22217 {"TERT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022218 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22219 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22220 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22221 {"TERT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022222 {"TERT_TDM_RX_2", NULL, "TERT_TDM_RX_2 Port Mixer"},
22223
22224 {"TERT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22225 {"TERT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22226 {"TERT_TDM_RX_3 Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22227 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22228 {"TERT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22229 {"TERT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22230 {"TERT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22231 {"TERT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22232 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22233 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22234 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22235 {"TERT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22236 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22237 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22238 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22239 {"TERT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022240 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22241 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22242 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22243 {"TERT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022244 {"TERT_TDM_RX_3", NULL, "TERT_TDM_RX_3 Port Mixer"},
22245
22246 {"QUAT_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22247 {"QUAT_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22248 {"QUAT_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22249 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22250 {"QUAT_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22251 {"QUAT_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22252 {"QUAT_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22253 {"QUAT_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22254 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22255 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22256 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22257 {"QUAT_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22258 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22259 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22260 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22261 {"QUAT_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022262 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22263 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22264 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22265 {"QUAT_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022266 {"QUAT_TDM_RX_0", NULL, "QUAT_TDM_RX_0 Port Mixer"},
22267
22268 {"QUAT_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22269 {"QUAT_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22270 {"QUAT_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22271 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22272 {"QUAT_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22273 {"QUAT_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22274 {"QUAT_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22275 {"QUAT_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22276 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22277 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22278 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22279 {"QUAT_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22280 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22281 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22282 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22283 {"QUAT_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022284 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22285 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22286 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22287 {"QUAT_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022288 {"QUAT_TDM_RX_1", NULL, "QUAT_TDM_RX_1 Port Mixer"},
22289
22290 {"QUAT_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22291 {"QUAT_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22292 {"QUAT_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22293 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22294 {"QUAT_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22295 {"QUAT_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22296 {"QUAT_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22297 {"QUAT_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22298 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22299 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22300 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22301 {"QUAT_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22302 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22303 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22304 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22305 {"QUAT_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022306 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22307 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22308 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22309 {"QUAT_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022310 {"QUAT_TDM_RX_2", NULL, "QUAT_TDM_RX_2 Port Mixer"},
22311
22312 {"QUAT_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22313 {"QUAT_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22314 {"QUAT_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22315 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22316 {"QUAT_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22317 {"QUAT_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22318 {"QUAT_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22319 {"QUAT_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22320 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22321 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22322 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22323 {"QUAT_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22324 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22325 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22326 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22327 {"QUAT_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022328 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22329 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22330 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22331 {"QUAT_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022332 {"QUAT_TDM_RX_3", NULL, "QUAT_TDM_RX_3 Port Mixer"},
22333
Rohit Kumara5077932017-09-10 22:05:05 +053022334 {"QUIN_TDM_RX_0 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22335 {"QUIN_TDM_RX_0 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22336 {"QUIN_TDM_RX_0 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22337 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22338 {"QUIN_TDM_RX_0 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22339 {"QUIN_TDM_RX_0 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22340 {"QUIN_TDM_RX_0 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22341 {"QUIN_TDM_RX_0 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22342 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22343 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22344 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22345 {"QUIN_TDM_RX_0 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22346 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22347 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22348 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22349 {"QUIN_TDM_RX_0 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22350 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22351 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22352 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22353 {"QUIN_TDM_RX_0 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022354 {"QUIN_TDM_RX_0", NULL, "QUIN_TDM_RX_0 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022355
22356 {"QUIN_TDM_RX_1 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22357 {"QUIN_TDM_RX_1 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22358 {"QUIN_TDM_RX_1 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22359 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22360 {"QUIN_TDM_RX_1 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22361 {"QUIN_TDM_RX_1 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22362 {"QUIN_TDM_RX_1 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22363 {"QUIN_TDM_RX_1 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22364 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22365 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22366 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22367 {"QUIN_TDM_RX_1 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22368 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22369 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22370 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22371 {"QUIN_TDM_RX_1 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22372 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22373 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22374 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22375 {"QUIN_TDM_RX_1 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022376 {"QUIN_TDM_RX_1", NULL, "QUIN_TDM_RX_1 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022377
22378 {"QUIN_TDM_RX_2 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22379 {"QUIN_TDM_RX_2 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22380 {"QUIN_TDM_RX_2 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22381 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22382 {"QUIN_TDM_RX_2 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22383 {"QUIN_TDM_RX_2 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22384 {"QUIN_TDM_RX_2 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22385 {"QUIN_TDM_RX_2 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22386 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22387 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22388 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22389 {"QUIN_TDM_RX_2 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22390 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22391 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22392 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22393 {"QUIN_TDM_RX_2 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22394 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22395 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22396 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22397 {"QUIN_TDM_RX_2 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022398 {"QUIN_TDM_RX_2", NULL, "QUIN_TDM_RX_2 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022399
22400 {"QUIN_TDM_RX_3 Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22401 {"QUIN_TDM_RX_3 Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22402 {"QUIN_TDM_RX_3 Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22403 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22404 {"QUIN_TDM_RX_3 Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22405 {"QUIN_TDM_RX_3 Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22406 {"QUIN_TDM_RX_3 Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22407 {"QUIN_TDM_RX_3 Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22408 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_0", "TERT_TDM_TX_0"},
22409 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_1", "TERT_TDM_TX_1"},
22410 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_2", "TERT_TDM_TX_2"},
22411 {"QUIN_TDM_RX_3 Port Mixer", "TERT_TDM_TX_3", "TERT_TDM_TX_3"},
22412 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
22413 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_1", "QUAT_TDM_TX_1"},
22414 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_2", "QUAT_TDM_TX_2"},
22415 {"QUIN_TDM_RX_3 Port Mixer", "QUAT_TDM_TX_3", "QUAT_TDM_TX_3"},
22416 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_0", "QUIN_TDM_TX_0"},
22417 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_1", "QUIN_TDM_TX_1"},
22418 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_2", "QUIN_TDM_TX_2"},
22419 {"QUIN_TDM_RX_3 Port Mixer", "QUIN_TDM_TX_3", "QUIN_TDM_TX_3"},
Rohit Kumarc08b14f2017-10-06 10:52:17 +053022420 {"QUIN_TDM_RX_3", NULL, "QUIN_TDM_RX_3 Port Mixer"},
Rohit Kumara5077932017-09-10 22:05:05 +053022421
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022422 {"INT0_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22423 {"INT0_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22424 {"INT0_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22425 {"INT0_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022426 {"INT0_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022427 {"INT0_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22428 {"INT0_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22429 {"INT0_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22430 {"INT0_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022431 {"INT0_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022432 {"INT0_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22433 {"INT0_MI2S_RX", NULL, "INT0_MI2S_RX Port Mixer"},
22434
22435 {"INT4_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22436 {"INT4_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22437 {"INT4_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22438 {"INT4_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022439 {"INT4_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022440 {"INT4_MI2S_RX Port Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22441 {"INT4_MI2S_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22442 {"INT4_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022443 {"INT4_MI2S_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022444 {"INT4_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22445 {"INT4_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22446 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX Port Mixer"},
22447
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022448 {"WSA_CDC_DMA_RX_0 Port Mixer", "VA_CDC_DMA_TX_0", "VA_CDC_DMA_TX_0"},
22449 {"WSA_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
22450 {"RX_CDC_DMA_RX_0 Port Mixer", "TX_CDC_DMA_TX_3", "TX_CDC_DMA_TX_3"},
Xiaojun Sang2a9a3fe2018-08-29 15:35:23 +080022451 {"WSA_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22452 {"RX_CDC_DMA_RX_0 Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22453
Aditya Bavanari67ef04b2018-08-21 16:06:57 +053022454
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022455 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22456 {"SLIMBUS_0_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22457 {"SLIMBUS_0_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22458 {"SLIMBUS_0_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22459 {"SLIMBUS_0_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022460 {"SLIMBUS_0_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022461 {"SLIMBUS_0_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22462 {"SLIMBUS_0_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22463 {"SLIMBUS_0_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22464 {"SLIMBUS_0_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022465 {"SLIMBUS_0_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022466 {"SLIMBUS_0_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22467 {"SLIMBUS_0_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22468 {"SLIMBUS_0_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22469 {"SLIMBUS_0_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22470 {"SLIMBUS_0_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022471 {"SLIMBUS_0_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022472 {"SLIMBUS_0_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22473 {"SLIMBUS_0_RX", NULL, "SLIMBUS_0_RX Port Mixer"},
22474 {"AFE_PCM_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22475 {"AFE_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22476 {"PCM_RX", NULL, "AFE_PCM_RX Port Mixer"},
22477 {"USB_AUDIO_RX Port Mixer", "USB_AUDIO_TX", "USB_AUDIO_TX"},
22478 {"USB_AUDIO_RX", NULL, "USB_AUDIO_RX Port Mixer"},
22479 {"USB_DL_HL", "Switch", "USBAUDIO_DL_HL"},
22480 {"USB_AUDIO_RX", NULL, "USB_DL_HL"},
22481 {"USBAUDIO_UL_HL", NULL, "USB_AUDIO_TX"},
22482
22483
22484 {"AUX_PCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22485 {"AUX_PCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22486 {"AUX_PCM_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22487 {"AUX_PCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22488 {"AUX_PCM_RX Port Mixer", "QUAT_TDM_TX_0", "QUAT_TDM_TX_0"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022489 {"AUX_PCM_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022490 {"AUX_PCM_RX", NULL, "AUX_PCM_RX Port Mixer"},
22491
22492 {"SEC_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22493 {"SEC_AUXPCM_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22494 {"SEC_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022495 {"SEC_AUXPCM_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022496 {"SEC_AUX_PCM_RX", NULL, "SEC_AUXPCM_RX Port Mixer"},
22497
22498 {"TERT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22499 {"TERT_AUXPCM_RX Port Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22500 {"TERT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22501 {"TERT_AUX_PCM_RX", NULL, "TERT_AUXPCM_RX Port Mixer"},
22502
22503 {"QUAT_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22504 {"QUAT_AUXPCM_RX Port Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
22505 {"QUAT_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22506 {"QUAT_AUX_PCM_RX", NULL, "QUAT_AUXPCM_RX Port Mixer"},
22507
Rohit Kumara5077932017-09-10 22:05:05 +053022508 {"QUIN_AUXPCM_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22509 {"QUIN_AUXPCM_RX Port Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
22510 {"QUIN_AUXPCM_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22511 {"QUIN_AUX_PCM_RX", NULL, "QUIN_AUXPCM_RX Port Mixer"},
22512
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022513 {"Voice Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22514 {"Voice Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22515 {"Voice Stub Tx Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22516 {"Voice Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22517 {"Voice Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22518 {"Voice Stub Tx Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22519 {"Voice Stub Tx Mixer", "TERT_AUXPCM_UL_TX", "TERT_AUX_PCM_TX"},
22520 {"Voice Stub Tx Mixer", "QUAT_AUXPCM_UL_TX", "QUAT_AUX_PCM_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022521 {"Voice Stub Tx Mixer", "QUIN_AUXPCM_UL_TX", "QUIN_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022522 {"Voice Stub Tx Mixer", "MI2S_TX", "MI2S_TX"},
22523 {"Voice Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22524 {"Voice Stub Tx Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22525 {"Voice Stub Tx Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
22526 {"Voice Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22527 {"Voice Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22528 {"Voice Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22529 {"Voice Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22530 {"Voice Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22531 {"Voice Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22532 {"VOICE_STUB_UL", NULL, "Voice Stub Tx Mixer"},
22533
22534 {"VoLTE Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22535 {"VoLTE Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22536 {"VoLTE Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22537 {"VoLTE Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22538 {"VoLTE Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22539 {"VoLTE Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22540 {"VoLTE Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22541 {"VoLTE Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22542 {"VoLTE Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22543 {"VoLTE Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22544 {"VoLTE Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22545 {"VOLTE_STUB_UL", NULL, "VoLTE Stub Tx Mixer"},
22546
22547 {"Voice2 Stub Tx Mixer", "STUB_TX_HL", "STUB_TX"},
22548 {"Voice2 Stub Tx Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22549 {"Voice2 Stub Tx Mixer", "STUB_1_TX_HL", "STUB_1_TX"},
22550 {"Voice2 Stub Tx Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22551 {"Voice2 Stub Tx Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22552 {"Voice2 Stub Tx Mixer", "SLIM_3_TX", "SLIMBUS_3_TX"},
22553 {"Voice2 Stub Tx Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22554 {"Voice2 Stub Tx Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22555 {"Voice2 Stub Tx Mixer", "AFE_PCM_TX", "PCM_TX"},
22556 {"Voice2 Stub Tx Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22557 {"Voice2 Stub Tx Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22558 {"VOICE2_STUB_UL", NULL, "Voice2 Stub Tx Mixer"},
22559
kunleizdf5a00a2017-11-27 15:27:36 +080022560 {"STUB_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22561 {"STUB_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022562 {"STUB_RX", NULL, "STUB_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022563
22564 {"SLIMBUS_1_RX Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22565 {"SLIMBUS_1_RX Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022566 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Mixer"},
kunleizdf5a00a2017-11-27 15:27:36 +080022567
22568 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22569 {"SLIMBUS_3_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022570 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX_Voice Mixer"},
22571
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022572 {"SLIM_7_RX_Voice Mixer", "Voip", "VOIP_DL"},
22573 {"SLIM_7_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022574 {"SLIM_7_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22575 {"SLIM_7_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22576 {"SLIM_7_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22577 {"SLIMBUS_7_RX", NULL, "SLIM_7_RX_Voice Mixer"},
22578
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022579 {"SLIM_8_RX_Voice Mixer", "Voip", "VOIP_DL"},
22580 {"SLIM_8_RX_Voice Mixer", "DTMF", "DTMF_DL_HL"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022581 {"SLIM_8_RX_Voice Mixer", "QCHAT", "QCHAT_DL"},
22582 {"SLIM_8_RX_Voice Mixer", "VoiceMMode1", "VOICEMMODE1_DL"},
22583 {"SLIM_8_RX_Voice Mixer", "VoiceMMode2", "VOICEMMODE2_DL"},
22584 {"SLIMBUS_8_RX", NULL, "SLIM_8_RX_Voice Mixer"},
22585
22586 {"SLIMBUS_1_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22587 {"SLIMBUS_1_RX Port Mixer", "AFE_PCM_TX", "PCM_TX"},
22588 {"SLIMBUS_1_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22589 {"SLIMBUS_1_RX", NULL, "SLIMBUS_1_RX Port Mixer"},
22590 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22591 {"INTERNAL_BT_SCO_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22592 {"INT_BT_SCO_RX", NULL, "INTERNAL_BT_SCO_RX Port Mixer"},
22593 {"SLIMBUS_3_RX Port Mixer", "INTERNAL_BT_SCO_RX", "INT_BT_SCO_RX"},
22594 {"SLIMBUS_3_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22595 {"SLIMBUS_3_RX Port Mixer", "AFE_PCM_RX", "PCM_RX"},
22596 {"SLIMBUS_3_RX Port Mixer", "AUX_PCM_RX", "AUX_PCM_RX"},
22597 {"SLIMBUS_3_RX Port Mixer", "SLIM_0_RX", "SLIMBUS_0_RX"},
22598 {"SLIMBUS_3_RX", NULL, "SLIMBUS_3_RX Port Mixer"},
22599
22600 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22601 {"SLIMBUS_6_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22602 {"SLIMBUS_6_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22603 {"SLIMBUS_6_RX Port Mixer", "SLIM_7_TX", "SLIMBUS_7_TX"},
22604 {"SLIMBUS_6_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022605 {"SLIMBUS_6_RX Port Mixer", "SLIM_9_TX", "SLIMBUS_9_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022606 {"SLIMBUS_6_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22607 {"SLIMBUS_6_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
22608 {"SLIMBUS_6_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22609 {"SLIMBUS_6_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22610 {"SLIMBUS_6_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22611 {"SLIMBUS_6_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22612 {"SLIMBUS_6_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22613 {"SLIMBUS_6_RX", NULL, "SLIMBUS_6_RX Port Mixer"},
22614
22615 {"HDMI_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22616 {"HDMI", NULL, "HDMI_RX Port Mixer"},
22617
22618 {"DISPLAY_PORT_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22619 {"DISPLAY_PORT", NULL, "DISPLAY_PORT_RX Port Mixer"},
22620
Karthikeyan Mani57550082018-05-03 18:43:58 -070022621 {"DISPLAY_PORT_RX1 Port Mixer", "MI2S_TX", "MI2S_TX"},
22622 {"DISPLAY_PORT1", NULL, "DISPLAY_PORT_RX1 Port Mixer"},
22623
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022624 {"SEC_I2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22625 {"SEC_I2S_RX", NULL, "SEC_I2S_RX Port Mixer"},
22626
22627 {"MI2S_RX Port Mixer", "SLIM_1_TX", "SLIMBUS_1_TX"},
22628 {"MI2S_RX Port Mixer", "MI2S_TX", "MI2S_TX"},
22629 {"MI2S_RX", NULL, "MI2S_RX Port Mixer"},
22630
22631 {"PRI_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22632 {"PRI_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22633 {"PRI_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22634 {"PRI_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022635 {"PRI_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022636 {"PRI_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22637 {"PRI_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22638 {"PRI_MI2S_RX Port Mixer", "INTERNAL_BT_SCO_TX", "INT_BT_SCO_TX"},
22639 {"PRI_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022640 {"PRI_MI2S_RX Port Mixer", "SEC_AUX_PCM_UL_TX", "SEC_AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022641 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX Port Mixer"},
22642
22643 {"SEC_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22644 {"SEC_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22645 {"SEC_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22646 {"SEC_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022647 {"SEC_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022648 {"SEC_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22649 {"SEC_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22650 {"SEC_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
Karthikeyan Mani9f66f6f2017-12-13 13:38:46 -080022651 {"SEC_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022652 {"SEC_MI2S_RX", NULL, "SEC_MI2S_RX Port Mixer"},
22653
22654 {"TERT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22655 {"TERT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22656 {"TERT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22657 {"TERT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022658 {"TERT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022659 {"TERT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22660 {"TERT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22661 {"TERT_MI2S_RX", NULL, "TERT_MI2S_RX Port Mixer"},
22662
22663 {"QUAT_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22664 {"QUAT_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22665 {"QUAT_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22666 {"QUAT_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022667 {"QUAT_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022668 {"QUAT_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22669 {"QUAT_MI2S_RX Port Mixer", "INTERNAL_FM_TX", "INT_FM_TX"},
22670 {"QUAT_MI2S_RX Port Mixer", "AUX_PCM_UL_TX", "AUX_PCM_TX"},
22671 {"QUAT_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22672 {"QUAT_MI2S_RX", NULL, "QUAT_MI2S_RX Port Mixer"},
22673
Rohit Kumara5077932017-09-10 22:05:05 +053022674 {"QUIN_MI2S_RX Port Mixer", "PRI_MI2S_TX", "PRI_MI2S_TX"},
22675 {"QUIN_MI2S_RX Port Mixer", "SEC_MI2S_TX", "SEC_MI2S_TX"},
22676 {"QUIN_MI2S_RX Port Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
22677 {"QUIN_MI2S_RX Port Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
22678 {"QUIN_MI2S_RX Port Mixer", "QUIN_MI2S_TX", "QUIN_MI2S_TX"},
22679 {"QUIN_MI2S_RX Port Mixer", "SLIM_0_TX", "SLIMBUS_0_TX"},
22680 {"QUIN_MI2S_RX Port Mixer", "SLIM_8_TX", "SLIMBUS_8_TX"},
22681 {"QUIN_MI2S_RX", NULL, "QUIN_MI2S_RX Port Mixer"},
22682
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022683 /* Backend Enablement */
22684
22685 {"BE_OUT", NULL, "PRI_I2S_RX"},
22686 {"BE_OUT", NULL, "SEC_I2S_RX"},
22687 {"BE_OUT", NULL, "SLIMBUS_0_RX"},
22688 {"BE_OUT", NULL, "SLIMBUS_1_RX"},
22689 {"BE_OUT", NULL, "SLIMBUS_2_RX"},
22690 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22691 {"BE_OUT", NULL, "SLIMBUS_4_RX"},
22692 {"BE_OUT", NULL, "SLIMBUS_5_RX"},
22693 {"BE_OUT", NULL, "SLIMBUS_6_RX"},
22694 {"BE_OUT", NULL, "SLIMBUS_7_RX"},
22695 {"BE_OUT", NULL, "SLIMBUS_8_RX"},
Surendar Karka3ef3d812018-09-28 18:52:35 +053022696 {"BE_OUT", NULL, "SLIMBUS_9_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022697 {"BE_OUT", NULL, "USB_AUDIO_RX"},
22698 {"BE_OUT", NULL, "HDMI"},
22699 {"BE_OUT", NULL, "DISPLAY_PORT"},
Karthikeyan Mani57550082018-05-03 18:43:58 -070022700 {"BE_OUT", NULL, "DISPLAY_PORT1"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022701 {"BE_OUT", NULL, "PRI_SPDIF_RX"},
22702 {"BE_OUT", NULL, "SEC_SPDIF_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022703 {"BE_OUT", NULL, "MI2S_RX"},
22704 {"BE_OUT", NULL, "QUAT_MI2S_RX"},
22705 {"BE_OUT", NULL, "QUIN_MI2S_RX"},
22706 {"BE_OUT", NULL, "TERT_MI2S_RX"},
22707 {"BE_OUT", NULL, "SEC_MI2S_RX"},
22708 {"BE_OUT", NULL, "SEC_MI2S_RX_SD1"},
22709 {"BE_OUT", NULL, "PRI_MI2S_RX"},
22710 {"BE_OUT", NULL, "INT0_MI2S_RX"},
22711 {"BE_OUT", NULL, "INT4_MI2S_RX"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022712 {"BE_OUT", NULL, "INT2_MI2S_RX"},
22713 {"BE_OUT", NULL, "INT3_MI2S_RX"},
22714 {"BE_OUT", NULL, "INT5_MI2S_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022715 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22716 {"BE_OUT", NULL, "INT_BT_A2DP_RX"},
22717 {"BE_OUT", NULL, "INT_FM_RX"},
22718 {"BE_OUT", NULL, "PCM_RX"},
22719 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22720 {"BE_OUT", NULL, "AUX_PCM_RX"},
22721 {"BE_OUT", NULL, "SEC_AUX_PCM_RX"},
22722 {"BE_OUT", NULL, "TERT_AUX_PCM_RX"},
22723 {"BE_OUT", NULL, "QUAT_AUX_PCM_RX"},
Rohit Kumara5077932017-09-10 22:05:05 +053022724 {"BE_OUT", NULL, "QUIN_AUX_PCM_RX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022725 {"BE_OUT", NULL, "INT_BT_SCO_RX"},
22726 {"BE_OUT", NULL, "INT_FM_RX"},
22727 {"BE_OUT", NULL, "PCM_RX"},
22728 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22729 {"BE_OUT", NULL, "VOICE_PLAYBACK_TX"},
22730 {"BE_OUT", NULL, "VOICE2_PLAYBACK_TX"},
22731 {"BE_OUT", NULL, "PRI_TDM_RX_0"},
22732 {"BE_OUT", NULL, "PRI_TDM_RX_1"},
22733 {"BE_OUT", NULL, "PRI_TDM_RX_2"},
22734 {"BE_OUT", NULL, "PRI_TDM_RX_3"},
22735 {"BE_OUT", NULL, "SEC_TDM_RX_0"},
22736 {"BE_OUT", NULL, "SEC_TDM_RX_1"},
22737 {"BE_OUT", NULL, "SEC_TDM_RX_2"},
22738 {"BE_OUT", NULL, "SEC_TDM_RX_3"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022739 {"BE_OUT", NULL, "SEC_TDM_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022740 {"BE_OUT", NULL, "TERT_TDM_RX_0"},
22741 {"BE_OUT", NULL, "TERT_TDM_RX_1"},
22742 {"BE_OUT", NULL, "TERT_TDM_RX_2"},
22743 {"BE_OUT", NULL, "TERT_TDM_RX_3"},
22744 {"BE_OUT", NULL, "TERT_TDM_RX_4"},
22745 {"BE_OUT", NULL, "QUAT_TDM_RX_0"},
22746 {"BE_OUT", NULL, "QUAT_TDM_RX_1"},
22747 {"BE_OUT", NULL, "QUAT_TDM_RX_2"},
22748 {"BE_OUT", NULL, "QUAT_TDM_RX_3"},
Rohit Kumara5077932017-09-10 22:05:05 +053022749 {"BE_OUT", NULL, "QUIN_TDM_RX_0"},
22750 {"BE_OUT", NULL, "QUIN_TDM_RX_1"},
22751 {"BE_OUT", NULL, "QUIN_TDM_RX_2"},
22752 {"BE_OUT", NULL, "QUIN_TDM_RX_3"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022753 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_0"},
22754 {"BE_OUT", NULL, "WSA_CDC_DMA_RX_1"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022755 {"BE_OUT", NULL, "RX_CDC_DMA_RX_0"},
22756 {"BE_OUT", NULL, "RX_CDC_DMA_RX_1"},
22757 {"BE_OUT", NULL, "RX_CDC_DMA_RX_2"},
22758 {"BE_OUT", NULL, "RX_CDC_DMA_RX_3"},
22759 {"BE_OUT", NULL, "RX_CDC_DMA_RX_4"},
22760 {"BE_OUT", NULL, "RX_CDC_DMA_RX_5"},
22761 {"BE_OUT", NULL, "RX_CDC_DMA_RX_6"},
22762 {"BE_OUT", NULL, "RX_CDC_DMA_RX_7"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022763
22764 {"PRI_I2S_TX", NULL, "BE_IN"},
22765 {"MI2S_TX", NULL, "BE_IN"},
22766 {"QUAT_MI2S_TX", NULL, "BE_IN"},
22767 {"QUIN_MI2S_TX", NULL, "BE_IN"},
22768 {"PRI_MI2S_TX", NULL, "BE_IN"},
22769 {"TERT_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022770 {"INT0_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022771 {"INT2_MI2S_TX", NULL, "BE_IN"},
22772 {"INT3_MI2S_TX", NULL, "BE_IN"},
Laxminath Kasam52697fe2017-11-29 15:44:14 +053022773 {"INT4_MI2S_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022774 {"INT5_MI2S_TX", NULL, "BE_IN"},
22775 {"SEC_MI2S_TX", NULL, "BE_IN"},
22776 {"SENARY_MI2S_TX", NULL, "BE_IN" },
22777 {"SLIMBUS_0_TX", NULL, "BE_IN" },
22778 {"SLIMBUS_1_TX", NULL, "BE_IN" },
22779 {"SLIMBUS_3_TX", NULL, "BE_IN" },
22780 {"SLIMBUS_4_TX", NULL, "BE_IN" },
22781 {"SLIMBUS_5_TX", NULL, "BE_IN" },
22782 {"SLIMBUS_6_TX", NULL, "BE_IN" },
22783 {"SLIMBUS_7_TX", NULL, "BE_IN" },
22784 {"SLIMBUS_8_TX", NULL, "BE_IN" },
Surendar Karka3ef3d812018-09-28 18:52:35 +053022785 {"SLIMBUS_9_TX", NULL, "BE_IN" },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022786 {"USB_AUDIO_TX", NULL, "BE_IN" },
22787 {"INT_BT_SCO_TX", NULL, "BE_IN"},
22788 {"INT_FM_TX", NULL, "BE_IN"},
22789 {"PCM_TX", NULL, "BE_IN"},
22790 {"BE_OUT", NULL, "SLIMBUS_3_RX"},
22791 {"BE_OUT", NULL, "STUB_RX"},
22792 {"STUB_TX", NULL, "BE_IN"},
22793 {"STUB_1_TX", NULL, "BE_IN"},
22794 {"BE_OUT", NULL, "AUX_PCM_RX"},
22795 {"AUX_PCM_TX", NULL, "BE_IN"},
22796 {"SEC_AUX_PCM_TX", NULL, "BE_IN"},
22797 {"TERT_AUX_PCM_TX", NULL, "BE_IN"},
22798 {"QUAT_AUX_PCM_TX", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022799 {"QUIN_AUX_PCM_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022800 {"INCALL_RECORD_TX", NULL, "BE_IN"},
22801 {"INCALL_RECORD_RX", NULL, "BE_IN"},
22802 {"SLIM0_RX_VI_FB_LCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
22803 {"SLIM0_RX_VI_FB_RCH_MUX", "SLIM4_TX", "SLIMBUS_4_TX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022804 {"WSA_RX_0_VI_FB_LCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
22805 {"WSA_RX_0_VI_FB_RCH_MUX", "WSA_CDC_DMA_TX_0", "WSA_CDC_DMA_TX_0"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022806 {"PRI_MI2S_RX_VI_FB_MUX", "SENARY_TX", "SENARY_TX"},
22807 {"INT4_MI2S_RX_VI_FB_MONO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22808 {"INT4_MI2S_RX_VI_FB_STEREO_CH_MUX", "INT5_MI2S_TX", "INT5_MI2S_TX"},
22809 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_LCH_MUX"},
22810 {"SLIMBUS_0_RX", NULL, "SLIM0_RX_VI_FB_RCH_MUX"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022811 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_LCH_MUX"},
22812 {"WSA_CDC_DMA_RX_0", NULL, "WSA_RX_0_VI_FB_RCH_MUX"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022813 {"PRI_MI2S_RX", NULL, "PRI_MI2S_RX_VI_FB_MUX"},
22814 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_MONO_CH_MUX"},
22815 {"INT4_MI2S_RX", NULL, "INT4_MI2S_RX_VI_FB_STEREO_CH_MUX"},
22816 {"PRI_TDM_TX_0", NULL, "BE_IN"},
22817 {"PRI_TDM_TX_1", NULL, "BE_IN"},
22818 {"PRI_TDM_TX_2", NULL, "BE_IN"},
22819 {"PRI_TDM_TX_3", NULL, "BE_IN"},
22820 {"SEC_TDM_TX_0", NULL, "BE_IN"},
22821 {"SEC_TDM_TX_1", NULL, "BE_IN"},
22822 {"SEC_TDM_TX_2", NULL, "BE_IN"},
22823 {"SEC_TDM_TX_3", NULL, "BE_IN"},
22824 {"TERT_TDM_TX_0", NULL, "BE_IN"},
22825 {"TERT_TDM_TX_1", NULL, "BE_IN"},
22826 {"TERT_TDM_TX_2", NULL, "BE_IN"},
22827 {"TERT_TDM_TX_3", NULL, "BE_IN"},
Derek Chenfdcc0982018-10-02 15:14:03 -070022828 {"TERT_TDM_TX_7", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022829 {"QUAT_TDM_TX_0", NULL, "BE_IN"},
22830 {"QUAT_TDM_TX_1", NULL, "BE_IN"},
22831 {"QUAT_TDM_TX_2", NULL, "BE_IN"},
22832 {"QUAT_TDM_TX_3", NULL, "BE_IN"},
Rohit Kumara5077932017-09-10 22:05:05 +053022833 {"QUIN_TDM_TX_0", NULL, "BE_IN"},
22834 {"QUIN_TDM_TX_1", NULL, "BE_IN"},
22835 {"QUIN_TDM_TX_2", NULL, "BE_IN"},
22836 {"QUIN_TDM_TX_3", NULL, "BE_IN"},
Mangesh Kunchamwara21bef62018-04-04 16:38:54 +053022837 {"WSA_CDC_DMA_TX_0", NULL, "BE_IN"},
22838 {"WSA_CDC_DMA_TX_1", NULL, "BE_IN"},
22839 {"WSA_CDC_DMA_TX_2", NULL, "BE_IN"},
22840 {"VA_CDC_DMA_TX_0", NULL, "BE_IN"},
22841 {"VA_CDC_DMA_TX_1", NULL, "BE_IN"},
Aditya Bavanari1e84a932018-06-18 19:40:08 +053022842 {"TX_CDC_DMA_TX_0", NULL, "BE_IN"},
22843 {"TX_CDC_DMA_TX_1", NULL, "BE_IN"},
22844 {"TX_CDC_DMA_TX_2", NULL, "BE_IN"},
22845 {"TX_CDC_DMA_TX_3", NULL, "BE_IN"},
22846 {"TX_CDC_DMA_TX_4", NULL, "BE_IN"},
22847 {"TX_CDC_DMA_TX_5", NULL, "BE_IN"},
Ralf Herzc8701f72018-06-20 11:37:35 +020022848 {"PRI_SPDIF_TX", NULL, "BE_IN"},
22849 {"SEC_SPDIF_TX", NULL, "BE_IN"},
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022850};
22851
22852static int msm_pcm_routing_hw_params(struct snd_pcm_substream *substream,
22853 struct snd_pcm_hw_params *params)
22854{
22855 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22856 unsigned int be_id = rtd->dai_link->id;
22857
22858 if (be_id >= MSM_BACKEND_DAI_MAX) {
22859 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22860 return -EINVAL;
22861 }
22862
22863 mutex_lock(&routing_lock);
22864 msm_bedais[be_id].sample_rate = params_rate(params);
22865 msm_bedais[be_id].channel = params_channels(params);
22866 msm_bedais[be_id].format = params_format(params);
22867 pr_debug("%s: BE Sample Rate (%d) format (%d) BE id %d\n",
22868 __func__, msm_bedais[be_id].sample_rate,
22869 msm_bedais[be_id].format, be_id);
22870 mutex_unlock(&routing_lock);
22871 return 0;
22872}
22873
22874static int msm_pcm_routing_close(struct snd_pcm_substream *substream)
22875{
22876 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22877 unsigned int be_id = rtd->dai_link->id;
22878 int i, session_type, path_type, topology;
22879 struct msm_pcm_routing_bdai_data *bedai;
22880 struct msm_pcm_routing_fdai_data *fdai;
22881
22882 pr_debug("%s: substream->pcm->id:%s\n",
22883 __func__, substream->pcm->id);
22884
22885 if (be_id >= MSM_BACKEND_DAI_MAX) {
22886 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22887 return -EINVAL;
22888 }
22889
22890 bedai = &msm_bedais[be_id];
22891 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK ?
22892 0 : 1);
22893 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
22894 path_type = ADM_PATH_PLAYBACK;
22895 else
22896 path_type = ADM_PATH_LIVE_REC;
22897
22898 mutex_lock(&routing_lock);
22899 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22900 if (!is_mm_lsm_fe_id(i))
22901 continue;
22902 fdai = &fe_dai_map[i][session_type];
22903 if (fdai->strm_id != INVALID_SESSION) {
22904 int idx;
22905 int port_id;
22906 unsigned long copp =
22907 session_copp_map[i][session_type][be_id];
22908 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++)
22909 if (test_bit(idx, &copp))
22910 break;
Vignesh Kulothungane59d3152018-10-10 14:19:59 -070022911
22912 if (idx >= MAX_COPPS_PER_PORT) {
22913 pr_debug("%s: copp idx is invalid, exiting\n",
22914 __func__);
22915 continue;
22916 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022917 fdai->be_srate = bedai->sample_rate;
22918 port_id = bedai->port_id;
22919 topology = adm_get_topology_for_port_copp_idx(port_id,
22920 idx);
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070022921 msm_routing_unload_topology(topology);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022922 adm_close(bedai->port_id, fdai->perf_mode, idx);
22923 pr_debug("%s: copp:%ld,idx bit fe:%d, type:%d,be:%d topology=0x%x\n",
22924 __func__, copp, i, session_type, be_id,
22925 topology);
22926 clear_bit(idx,
22927 &session_copp_map[i][session_type][be_id]);
22928 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022929 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022930 msm_pcm_routing_deinit_pp(bedai->port_id,
22931 topology);
22932 }
22933 }
22934
22935 bedai->active = 0;
22936 bedai->sample_rate = 0;
22937 bedai->channel = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022938 mutex_unlock(&routing_lock);
22939
22940 return 0;
22941}
22942
22943static int msm_pcm_routing_prepare(struct snd_pcm_substream *substream)
22944{
22945 struct snd_soc_pcm_runtime *rtd = substream->private_data;
22946 unsigned int be_id = rtd->dai_link->id;
22947 int i, path_type, topology;
22948 int session_type = INVALID_SESSION;
22949 struct msm_pcm_routing_bdai_data *bedai;
22950 u32 channels, sample_rate;
22951 uint16_t bits_per_sample = 16, voc_path_type;
22952 struct msm_pcm_routing_fdai_data *fdai;
22953 u32 session_id;
22954 struct media_format_info voc_be_media_format;
22955 bool is_lsm;
22956
22957 pr_debug("%s: substream->pcm->id:%s\n",
22958 __func__, substream->pcm->id);
22959
22960 if (be_id >= MSM_BACKEND_DAI_MAX) {
22961 pr_err("%s: unexpected BE id %d\n", __func__, be_id);
22962 return -EINVAL;
22963 }
22964
22965 bedai = &msm_bedais[be_id];
22966
22967 mutex_lock(&routing_lock);
22968 if (bedai->active == 1)
22969 goto done; /* Ignore prepare if back-end already active */
22970
22971 /* AFE port is not active at this point. However, still
22972 * go ahead setting active flag under the notion that
22973 * QDSP6 is able to handle ADM starting before AFE port
22974 * is started.
22975 */
22976 bedai->active = 1;
22977
22978 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
22979 if (!(is_mm_lsm_fe_id(i) &&
22980 route_check_fe_id_adm_support(i)))
22981 continue;
22982
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022983 session_type = (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) ?
22984 SESSION_TYPE_RX : SESSION_TYPE_TX;
22985 fdai = &fe_dai_map[i][session_type];
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022986 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022987 if (fdai->passthr_mode != LEGACY_PCM)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022988 path_type = ADM_PATH_COMPRESSED_RX;
22989 else
22990 path_type = ADM_PATH_PLAYBACK;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022991 } else {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053022992 if ((fdai->passthr_mode != LEGACY_PCM) &&
22993 (fdai->passthr_mode != LISTEN))
Ralf Herzc8701f72018-06-20 11:37:35 +020022994 path_type = ADM_PATH_COMPRESSED_TX;
22995 else
22996 path_type = ADM_PATH_LIVE_REC;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053022997 }
22998
22999 is_lsm = (i >= MSM_FRONTEND_DAI_LSM1) &&
23000 (i <= MSM_FRONTEND_DAI_LSM8);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023001 if (fdai->strm_id != INVALID_SESSION) {
23002 int app_type, app_type_idx, copp_idx, acdb_dev_id;
23003
23004 if (session_type == SESSION_TYPE_TX &&
23005 fdai->be_srate &&
23006 (fdai->be_srate != bedai->sample_rate)) {
23007 pr_debug("%s: flush strm %d diff BE rates\n",
23008 __func__,
23009 fdai->strm_id);
23010
23011 if (fdai->event_info.event_func)
23012 fdai->event_info.event_func(
23013 MSM_PCM_RT_EVT_BUF_RECFG,
23014 fdai->event_info.priv_data);
23015 fdai->be_srate = 0; /* might not need it */
23016 }
23017 bits_per_sample = msm_routing_get_bit_width(
23018 bedai->format);
23019
23020 app_type =
23021 fe_dai_app_type_cfg[i][session_type][be_id].app_type;
23022 if (app_type && is_lsm) {
23023 app_type_idx =
23024 msm_pcm_routing_get_lsm_app_type_idx(app_type);
23025 sample_rate =
23026 fe_dai_app_type_cfg[i][session_type][be_id]
23027 .sample_rate;
23028 bits_per_sample =
23029 lsm_app_type_cfg[app_type_idx].bit_width;
23030 } else if (app_type) {
23031 app_type_idx =
23032 msm_pcm_routing_get_app_type_idx(app_type);
23033 sample_rate =
23034 fe_dai_app_type_cfg[i][session_type]
23035 [be_id].sample_rate;
23036 bits_per_sample =
23037 app_type_cfg[app_type_idx].bit_width;
23038 } else
23039 sample_rate = bedai->sample_rate;
23040 /*
23041 * check if ADM needs to be configured with different
23042 * channel mapping than backend
23043 */
23044 if (!bedai->adm_override_ch)
23045 channels = bedai->channel;
23046 else
23047 channels = bedai->adm_override_ch;
23048 acdb_dev_id =
23049 fe_dai_app_type_cfg[i][session_type][be_id].acdb_dev_id;
23050 topology = msm_routing_get_adm_topology(i, session_type,
23051 be_id);
Ralf Herzc8701f72018-06-20 11:37:35 +020023052
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023053 if ((fdai->passthr_mode == COMPRESSED_PASSTHROUGH_DSD)
23054 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_GEN)
23055 || (fdai->passthr_mode == COMPRESSED_PASSTHROUGH_IEC61937))
Ralf Herzc8701f72018-06-20 11:37:35 +020023056 topology = COMPRESSED_PASSTHROUGH_NONE_TOPOLOGY;
23057
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023058 copp_idx = adm_open(bedai->port_id, path_type,
23059 sample_rate, channels, topology,
23060 fdai->perf_mode, bits_per_sample,
23061 app_type, acdb_dev_id);
23062 if ((copp_idx < 0) ||
23063 (copp_idx >= MAX_COPPS_PER_PORT)) {
23064 pr_err("%s: adm open failed\n", __func__);
23065 mutex_unlock(&routing_lock);
23066 return -EINVAL;
23067 }
23068 pr_debug("%s: setting idx bit of fe:%d, type: %d, be:%d\n",
23069 __func__, i, session_type, be_id);
23070 set_bit(copp_idx,
23071 &session_copp_map[i][session_type][be_id]);
23072
23073 if (msm_is_resample_needed(
23074 sample_rate,
23075 bedai->sample_rate))
23076 adm_copp_mfc_cfg(
23077 bedai->port_id, copp_idx,
23078 bedai->sample_rate);
23079
23080 msm_pcm_routing_build_matrix(i, session_type, path_type,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023081 fdai->perf_mode, fdai->passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023082 if ((fdai->perf_mode == LEGACY_PCM_MODE) &&
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023083 (fdai->passthr_mode == LEGACY_PCM))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023084 msm_pcm_routing_cfg_pp(bedai->port_id, copp_idx,
23085 topology, channels);
23086 }
23087 }
23088
23089 for_each_set_bit(i, &bedai->fe_sessions[0], MSM_FRONTEND_DAI_MAX) {
23090 session_id = msm_pcm_routing_get_voc_sessionid(i);
23091 if (session_id) {
23092 pr_debug("%s voice session_id: 0x%x\n", __func__,
23093 session_id);
23094
23095 if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
23096 voc_path_type = RX_PATH;
23097 else
23098 voc_path_type = TX_PATH;
23099
23100 voc_set_route_flag(session_id, voc_path_type, 1);
23101
23102 memset(&voc_be_media_format, 0,
23103 sizeof(struct media_format_info));
23104
23105 voc_be_media_format.port_id = bedai->port_id;
23106 voc_be_media_format.num_channels = bedai->channel;
23107 voc_be_media_format.sample_rate = bedai->sample_rate;
23108 voc_be_media_format.bits_per_sample = bedai->format;
23109 /* Defaulting this to 1 for voice call usecases */
23110 voc_be_media_format.channel_mapping[0] = 1;
23111
23112 voc_set_device_config(session_id, voc_path_type,
23113 &voc_be_media_format);
23114
23115 if (voc_get_route_flag(session_id, RX_PATH) &&
23116 voc_get_route_flag(session_id, TX_PATH))
23117 voc_enable_device(session_id);
23118 }
23119 }
23120
23121 /* Check if backend is an external ec ref port and set as needed */
23122 if (unlikely(bedai->port_id == voc_get_ext_ec_ref_port_id())) {
23123
23124 memset(&voc_be_media_format, 0,
23125 sizeof(struct media_format_info));
23126
23127 /* Get format info for ec ref port from msm_bedais[] */
23128 voc_be_media_format.port_id = bedai->port_id;
23129 voc_be_media_format.num_channels = bedai->channel;
23130 voc_be_media_format.bits_per_sample = bedai->format;
23131 voc_be_media_format.sample_rate = bedai->sample_rate;
23132 /* Defaulting this to 1 for voice call usecases */
23133 voc_be_media_format.channel_mapping[0] = 1;
23134 voc_set_ext_ec_ref_media_fmt_info(&voc_be_media_format);
23135 pr_debug("%s: EC Ref media format info set to port_id=%d, num_channels=%d, bits_per_sample=%d, sample_rate=%d\n",
23136 __func__, voc_be_media_format.port_id,
23137 voc_be_media_format.num_channels,
23138 voc_be_media_format.bits_per_sample,
23139 voc_be_media_format.sample_rate);
23140 }
23141
23142done:
23143 mutex_unlock(&routing_lock);
23144
23145 return 0;
23146}
23147
23148static int msm_routing_send_device_pp_params(int port_id, int copp_idx,
23149 int fe_id)
23150{
23151 int index, topo_id, be_idx;
23152 unsigned long pp_config = 0;
23153 bool mute_on;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023154 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023155 bool compr_passthr_mode = true;
23156
23157 pr_debug("%s: port_id %d, copp_idx %d\n", __func__, port_id, copp_idx);
23158
23159 if (port_id != HDMI_RX && port_id != DISPLAY_PORT_RX) {
23160 pr_err("%s: Device pp params on invalid port %d\n",
23161 __func__, port_id);
23162 return -EINVAL;
23163 }
23164
23165 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23166 if (port_id == msm_bedais[be_idx].port_id)
23167 break;
23168 }
23169
23170 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23171 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23172 return -EINVAL;
23173 }
23174
23175 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23176 if (msm_bedais_pp_params[index].port_id == port_id)
23177 break;
23178 }
23179 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23180 pr_err("%s: Invalid backend pp params index %d\n",
23181 __func__, index);
23182 return -EINVAL;
23183 }
23184
23185 topo_id = adm_get_topology_for_port_copp_idx(port_id, copp_idx);
23186 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY) {
23187 pr_err("%s: Invalid passthrough topology 0x%x\n",
23188 __func__, topo_id);
23189 return -EINVAL;
23190 }
23191
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023192 session_type =
23193 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23194 SESSION_TYPE_RX : SESSION_TYPE_TX;
23195
23196 if ((fe_dai_map[fe_id][session_type].passthr_mode == LEGACY_PCM) ||
23197 (fe_dai_map[fe_id][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023198 compr_passthr_mode = false;
23199
23200 pp_config = msm_bedais_pp_params[index].pp_params_config;
23201 if (test_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config)) {
23202 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23203 clear_bit(ADM_PP_PARAM_MUTE_BIT, &pp_config);
23204 mute_on = msm_bedais_pp_params[index].mute_on;
23205 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23206 adm_send_compressed_device_mute(port_id,
23207 copp_idx,
23208 mute_on);
23209 }
23210 if (test_bit(ADM_PP_PARAM_LATENCY_BIT, &pp_config)) {
23211 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23212 clear_bit(ADM_PP_PARAM_LATENCY_BIT,
23213 &pp_config);
23214 latency = msm_bedais_pp_params[index].latency;
23215 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23216 adm_send_compressed_device_latency(port_id,
23217 copp_idx,
23218 latency);
23219 }
23220 return 0;
23221}
23222
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023223static uint32_t msm_routing_get_topology(size_t data_size, void *data)
23224{
23225 uint32_t topology = NULL_COPP_TOPOLOGY;
23226 void *cal_info = NULL;
23227 uint32_t size = 0;
23228
23229 /* Retrieve cal_info size from cal data*/
23230 size = data_size - sizeof(struct audio_cal_type_basic);
23231 cal_info = kzalloc(size, GFP_KERNEL);
23232
23233 if (!cal_info)
23234 goto done;
23235
23236 memcpy(cal_info,
23237 ((uint8_t *)data + sizeof(struct audio_cal_type_basic)), size);
23238
23239 topology = ((struct audio_cal_info_adm_top *)cal_info)->topology;
23240 kfree(cal_info);
23241 cal_info = NULL;
23242
23243done:
23244 pr_debug("%s: Using topology %d\n", __func__, topology);
23245
23246 return topology;
23247}
23248
23249static void msm_routing_load_topology(size_t data_size, void *data)
23250{
23251 uint32_t topology_id;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023252 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023253
23254 topology_id = msm_routing_get_topology(data_size, data);
23255 if (topology_id != NULL_COPP_TOPOLOGY)
23256 ret = q6core_load_unload_topo_modules(topology_id,
23257 CORE_LOAD_TOPOLOGY);
23258 if (ret < 0)
23259 pr_debug("%s %d load topology failed\n",
23260 __func__, topology_id);
23261
23262}
23263
23264static void msm_routing_unload_topology(uint32_t topology_id)
23265{
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023266 int ret = -EINVAL;
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023267
23268 if (topology_id != NULL_COPP_TOPOLOGY)
23269 ret = q6core_load_unload_topo_modules(topology_id,
23270 CORE_UNLOAD_TOPOLOGY);
23271 if (ret < 0)
23272 pr_debug("%s %d unload topology failed\n",
23273 __func__, topology_id);
23274
23275}
23276
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023277static int msm_routing_put_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23278 struct snd_ctl_elem_value *ucontrol)
23279{
23280 int pp_id = ucontrol->value.integer.value[0];
23281 int port_id = 0;
23282 int index, be_idx, i, topo_id, idx;
23283 bool mute;
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023284 int latency, session_type;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023285 bool compr_passthr_mode = true;
23286
23287 pr_debug("%s: pp_id: 0x%x\n", __func__, pp_id);
23288
23289 for (be_idx = 0; be_idx < MSM_BACKEND_DAI_MAX; be_idx++) {
23290 port_id = msm_bedais[be_idx].port_id;
23291 if (port_id == HDMI_RX || port_id == DISPLAY_PORT_RX)
23292 break;
23293 }
23294
23295 if (be_idx >= MSM_BACKEND_DAI_MAX) {
23296 pr_debug("%s: Invalid be id %d\n", __func__, be_idx);
23297 return -EINVAL;
23298 }
23299
23300 for (index = 0; index < MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX; index++) {
23301 if (msm_bedais_pp_params[index].port_id == port_id)
23302 break;
23303 }
23304 if (index >= MSM_BACKEND_DAI_PP_PARAMS_REQ_MAX) {
23305 pr_err("%s: Invalid pp params backend index %d\n",
23306 __func__, index);
23307 return -EINVAL;
23308 }
23309
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023310 session_type =
23311 (afe_get_port_type(port_id) == MSM_AFE_PORT_TYPE_RX) ?
23312 SESSION_TYPE_RX : SESSION_TYPE_TX;
23313
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023314 for_each_set_bit(i, &msm_bedais[be_idx].fe_sessions[0],
23315 MSM_FRONTEND_DAI_MM_SIZE) {
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023316 if ((fe_dai_map[i][session_type].passthr_mode == LEGACY_PCM) ||
23317 (fe_dai_map[i][session_type].passthr_mode == LISTEN))
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023318 compr_passthr_mode = false;
23319
23320 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23321 unsigned long copp =
23322 session_copp_map[i]
23323 [SESSION_TYPE_RX][be_idx];
23324 if (!test_bit(idx, &copp))
23325 continue;
23326 topo_id = adm_get_topology_for_port_copp_idx(port_id,
23327 idx);
23328 if (topo_id != COMPRESSED_PASSTHROUGH_DEFAULT_TOPOLOGY)
23329 continue;
23330 pr_debug("%s: port: 0x%x, copp %ld, be active: %d, passt: %d\n",
23331 __func__, port_id, copp, msm_bedais[be_idx].active,
Dhananjay Kumar3d8cc2e2018-09-05 20:04:23 +053023332 fe_dai_map[i][session_type].passthr_mode);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023333 switch (pp_id) {
23334 case ADM_PP_PARAM_MUTE_ID:
23335 pr_debug("%s: ADM_PP_PARAM_MUTE\n", __func__);
23336 mute = ucontrol->value.integer.value[1] ? true : false;
23337 msm_bedais_pp_params[index].mute_on = mute;
23338 set_bit(ADM_PP_PARAM_MUTE_BIT,
23339 &msm_bedais_pp_params[index].pp_params_config);
23340 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23341 adm_send_compressed_device_mute(port_id,
23342 idx, mute);
23343 break;
23344 case ADM_PP_PARAM_LATENCY_ID:
23345 pr_debug("%s: ADM_PP_PARAM_LATENCY\n", __func__);
23346 msm_bedais_pp_params[index].latency =
23347 ucontrol->value.integer.value[1];
23348 set_bit(ADM_PP_PARAM_LATENCY_BIT,
23349 &msm_bedais_pp_params[index].pp_params_config);
23350 latency = msm_bedais_pp_params[index].latency =
23351 ucontrol->value.integer.value[1];
23352 if ((msm_bedais[be_idx].active) && compr_passthr_mode)
23353 adm_send_compressed_device_latency(port_id,
23354 idx, latency);
23355 break;
23356 default:
23357 pr_info("%s, device pp param %d not supported\n",
23358 __func__, pp_id);
23359 break;
23360 }
23361 }
23362 }
23363 return 0;
23364}
23365
23366static int msm_routing_get_device_pp_params_mixer(struct snd_kcontrol *kcontrol,
23367 struct snd_ctl_elem_value *ucontrol)
23368{
23369 pr_debug("%s:msm_routing_get_device_pp_params_mixer", __func__);
23370 return 0;
23371}
23372
23373static const struct snd_kcontrol_new device_pp_params_mixer_controls[] = {
23374 SOC_SINGLE_MULTI_EXT("Device PP Params", SND_SOC_NOPM, 0, 0xFFFFFFFF,
23375 0, 3, msm_routing_get_device_pp_params_mixer,
23376 msm_routing_put_device_pp_params_mixer),
23377};
23378
23379static int msm_aptx_dec_license_control_get(struct snd_kcontrol *kcontrol,
23380 struct snd_ctl_elem_value *ucontrol)
23381{
23382 ucontrol->value.integer.value[0] =
23383 core_get_license_status(ASM_MEDIA_FMT_APTX);
23384 pr_debug("%s: status %ld\n", __func__,
23385 ucontrol->value.integer.value[0]);
23386 return 0;
23387}
23388
23389static int msm_aptx_dec_license_control_put(struct snd_kcontrol *kcontrol,
23390 struct snd_ctl_elem_value *ucontrol)
23391{
23392 int32_t status = 0;
23393
23394 status = core_set_license(ucontrol->value.integer.value[0],
23395 APTX_CLASSIC_DEC_LICENSE_ID);
23396 pr_debug("%s: status %d\n", __func__, status);
23397 return status;
23398}
23399
23400static const struct snd_kcontrol_new aptx_dec_license_controls[] = {
23401 SOC_SINGLE_EXT("APTX Dec License", SND_SOC_NOPM, 0,
23402 0xFFFF, 0, msm_aptx_dec_license_control_get,
23403 msm_aptx_dec_license_control_put),
23404};
23405
23406static int msm_routing_be_dai_name_table_info(struct snd_kcontrol *kcontrol,
23407 struct snd_ctl_elem_info *uinfo)
23408{
23409 uinfo->type = SNDRV_CTL_ELEM_TYPE_BYTES;
23410 uinfo->count = sizeof(be_dai_name_table);
23411 return 0;
23412}
23413
23414static int msm_routing_be_dai_name_table_tlv_get(struct snd_kcontrol *kcontrol,
23415 unsigned int __user *bytes,
23416 unsigned int size)
23417{
23418 int i;
Ramu Gottipatid8d43d22018-07-07 23:17:16 +053023419 int ret = 0;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023420
23421 if (size < sizeof(be_dai_name_table)) {
23422 pr_err("%s: invalid size %d requested, returning\n",
23423 __func__, size);
23424 ret = -EINVAL;
23425 goto done;
23426 }
23427
23428 /*
23429 * Fill be_dai_name_table from msm_bedais table to reduce code changes
23430 * needed when adding new backends
23431 */
23432 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23433 be_dai_name_table[i].be_id = i;
23434 strlcpy(be_dai_name_table[i].be_name,
23435 msm_bedais[i].name,
23436 LPASS_BE_NAME_MAX_LENGTH);
23437 }
23438
23439 ret = copy_to_user(bytes, &be_dai_name_table,
23440 sizeof(be_dai_name_table));
23441 if (ret) {
23442 pr_err("%s: failed to copy be_dai_name_table\n", __func__);
23443 ret = -EFAULT;
23444 }
23445
23446done:
23447 return ret;
23448}
23449
23450static const struct snd_kcontrol_new
23451 msm_routing_be_dai_name_table_mixer_controls[] = {
23452 {
23453 .access = SNDRV_CTL_ELEM_ACCESS_TLV_READ |
23454 SNDRV_CTL_ELEM_ACCESS_TLV_CALLBACK,
23455 .info = msm_routing_be_dai_name_table_info,
23456 .name = "Backend DAI Name Table",
23457 .tlv.c = snd_soc_bytes_tlv_callback,
23458 .private_value = (unsigned long) &(struct soc_bytes_ext) {
23459 .max = sizeof(be_dai_name_table),
23460 .get = msm_routing_be_dai_name_table_tlv_get,
23461 }
23462 },
23463};
23464
23465static int msm_routing_stereo_channel_reverse_control_get(
23466 struct snd_kcontrol *kcontrol,
23467 struct snd_ctl_elem_value *ucontrol)
23468{
23469 ucontrol->value.integer.value[0] = swap_ch;
23470 pr_debug("%s: Swap channel value: %ld\n", __func__,
23471 ucontrol->value.integer.value[0]);
23472 return 0;
23473}
23474
23475static int msm_routing_stereo_channel_reverse_control_put(
23476 struct snd_kcontrol *kcontrol,
23477 struct snd_ctl_elem_value *ucontrol)
23478{
23479 int i, idx, be_index, port_id;
23480 int ret = 0;
23481 unsigned long copp;
23482
23483 pr_debug("%s Swap channel value:%ld\n", __func__,
23484 ucontrol->value.integer.value[0]);
23485
23486 swap_ch = ucontrol->value.integer.value[0];
23487
23488 mutex_lock(&routing_lock);
23489 for (be_index = 0; be_index < MSM_BACKEND_DAI_MAX; be_index++) {
23490 port_id = msm_bedais[be_index].port_id;
23491 if (!msm_bedais[be_index].active)
23492 continue;
23493
23494 for_each_set_bit(i, &msm_bedais[be_index].fe_sessions[0],
23495 MSM_FRONTEND_DAI_MM_SIZE) {
23496 copp = session_copp_map[i][SESSION_TYPE_RX][be_index];
23497 for (idx = 0; idx < MAX_COPPS_PER_PORT; idx++) {
23498 if (!test_bit(idx, &copp))
23499 continue;
23500
23501 pr_debug("%s: swap channel control of portid:%d, coppid:%d\n",
23502 __func__, port_id, idx);
23503 ret = adm_swap_speaker_channels(
23504 port_id, idx,
23505 msm_bedais[be_index].sample_rate,
23506 swap_ch);
23507 if (ret) {
23508 pr_err("%s:Swap_channel failed, err=%d\n",
23509 __func__, ret);
23510 goto done;
23511 }
23512 }
23513 }
23514 }
23515done:
23516 mutex_unlock(&routing_lock);
23517 return ret;
23518}
23519
23520static const struct snd_kcontrol_new stereo_channel_reverse_control[] = {
23521 SOC_SINGLE_EXT("Swap channel", SND_SOC_NOPM, 0,
23522 1, 0, msm_routing_stereo_channel_reverse_control_get,
23523 msm_routing_stereo_channel_reverse_control_put),
23524};
23525
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023526static int msm_routing_instance_id_support_info(struct snd_kcontrol *kcontrol,
23527 struct snd_ctl_elem_info *uinfo)
23528{
23529 uinfo->type = SNDRV_CTL_ELEM_TYPE_BOOLEAN;
23530 uinfo->count = 1;
23531 return 0;
23532}
23533
23534static int msm_routing_instance_id_support_put(
23535 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23536{
23537 bool supported = ucontrol->value.integer.value[0] ? true : false;
23538
23539 q6common_update_instance_id_support(supported);
23540 return 0;
23541}
23542
23543static int msm_routing_instance_id_support_get(
23544 struct snd_kcontrol *kcontrol, struct snd_ctl_elem_value *ucontrol)
23545{
23546 bool supported = false;
23547
23548 supported = q6common_is_instance_id_supported();
23549 ucontrol->value.integer.value[0] = supported ? 1 : 0;
23550
23551 return 0;
23552}
23553
23554static const struct snd_kcontrol_new
23555 msm_routing_feature_support_mixer_controls[] = {
23556 {
23557 .access = SNDRV_CTL_ELEM_ACCESS_READ |
23558 SNDRV_CTL_ELEM_ACCESS_WRITE,
23559 .info = msm_routing_instance_id_support_info,
23560 .name = "Instance ID Support",
23561 .put = msm_routing_instance_id_support_put,
23562 .get = msm_routing_instance_id_support_get,
23563 },
23564};
23565
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023566static const struct snd_pcm_ops msm_routing_pcm_ops = {
23567 .hw_params = msm_pcm_routing_hw_params,
23568 .close = msm_pcm_routing_close,
23569 .prepare = msm_pcm_routing_prepare,
23570};
23571
23572/* Not used but frame seems to require it */
23573static int msm_routing_probe(struct snd_soc_platform *platform)
23574{
23575 snd_soc_dapm_new_controls(&platform->component.dapm, msm_qdsp6_widgets,
23576 ARRAY_SIZE(msm_qdsp6_widgets));
23577 snd_soc_dapm_add_routes(&platform->component.dapm, intercon,
23578 ARRAY_SIZE(intercon));
23579
23580 snd_soc_dapm_new_widgets(platform->component.dapm.card);
23581
23582 snd_soc_add_platform_controls(platform, lsm_controls,
23583 ARRAY_SIZE(lsm_controls));
23584
23585 snd_soc_add_platform_controls(platform, aanc_slim_0_rx_mux,
23586 ARRAY_SIZE(aanc_slim_0_rx_mux));
23587
Sudheer Papothic07b37a2018-05-04 05:56:47 +053023588 snd_soc_add_platform_controls(platform, aanc_noise_level,
23589 ARRAY_SIZE(aanc_noise_level));
23590
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023591 snd_soc_add_platform_controls(platform, msm_voc_session_controls,
23592 ARRAY_SIZE(msm_voc_session_controls));
23593
23594 snd_soc_add_platform_controls(platform, app_type_cfg_controls,
23595 ARRAY_SIZE(app_type_cfg_controls));
23596
23597 snd_soc_add_platform_controls(platform, lsm_app_type_cfg_controls,
23598 ARRAY_SIZE(lsm_app_type_cfg_controls));
23599
Vikram Pandurangaee9c03a2017-09-07 15:06:17 -070023600 snd_soc_add_platform_controls(platform, module_cfg_controls,
23601 ARRAY_SIZE(module_cfg_controls));
23602
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023603 snd_soc_add_platform_controls(platform,
23604 stereo_to_custom_stereo_controls,
23605 ARRAY_SIZE(stereo_to_custom_stereo_controls));
23606
23607 snd_soc_add_platform_controls(platform, ec_ref_param_controls,
23608 ARRAY_SIZE(ec_ref_param_controls));
23609
23610 snd_soc_add_platform_controls(platform, channel_mixer_controls,
23611 ARRAY_SIZE(channel_mixer_controls));
23612
23613 msm_qti_pp_add_controls(platform);
23614
23615 msm_dts_srs_tm_add_controls(platform);
23616
23617 msm_dolby_dap_add_controls(platform);
23618
23619 snd_soc_add_platform_controls(platform,
23620 use_ds1_or_ds2_controls,
23621 ARRAY_SIZE(use_ds1_or_ds2_controls));
23622
23623 snd_soc_add_platform_controls(platform,
23624 device_pp_params_mixer_controls,
23625 ARRAY_SIZE(device_pp_params_mixer_controls));
23626
23627 snd_soc_add_platform_controls(platform,
23628 msm_routing_be_dai_name_table_mixer_controls,
23629 ARRAY_SIZE(msm_routing_be_dai_name_table_mixer_controls));
23630
23631 snd_soc_add_platform_controls(platform, msm_source_tracking_controls,
23632 ARRAY_SIZE(msm_source_tracking_controls));
23633 snd_soc_add_platform_controls(platform, adm_channel_config_controls,
23634 ARRAY_SIZE(adm_channel_config_controls));
23635
23636 snd_soc_add_platform_controls(platform, aptx_dec_license_controls,
23637 ARRAY_SIZE(aptx_dec_license_controls));
23638 snd_soc_add_platform_controls(platform, stereo_channel_reverse_control,
23639 ARRAY_SIZE(stereo_channel_reverse_control));
Vignesh Kulothungan5c109922018-01-24 17:36:18 -080023640 snd_soc_add_platform_controls(
23641 platform, msm_routing_feature_support_mixer_controls,
23642 ARRAY_SIZE(msm_routing_feature_support_mixer_controls));
23643
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023644 return 0;
23645}
23646
23647int msm_routing_pcm_new(struct snd_soc_pcm_runtime *runtime)
23648{
23649 return msm_pcm_routing_hwdep_new(runtime, msm_bedais);
23650}
23651
23652void msm_routing_pcm_free(struct snd_pcm *pcm)
23653{
23654 msm_pcm_routing_hwdep_free(pcm);
23655}
23656
23657static struct snd_soc_platform_driver msm_soc_routing_platform = {
23658 .ops = &msm_routing_pcm_ops,
23659 .probe = msm_routing_probe,
23660 .pcm_new = msm_routing_pcm_new,
23661 .pcm_free = msm_routing_pcm_free,
23662};
23663
23664static int msm_routing_pcm_probe(struct platform_device *pdev)
23665{
23666
23667 dev_dbg(&pdev->dev, "dev name %s\n", dev_name(&pdev->dev));
23668 return snd_soc_register_platform(&pdev->dev,
23669 &msm_soc_routing_platform);
23670}
23671
23672static int msm_routing_pcm_remove(struct platform_device *pdev)
23673{
23674 snd_soc_unregister_platform(&pdev->dev);
23675 return 0;
23676}
23677
23678static const struct of_device_id msm_pcm_routing_dt_match[] = {
23679 {.compatible = "qcom,msm-pcm-routing"},
23680 {}
23681};
23682MODULE_DEVICE_TABLE(of, msm_pcm_routing_dt_match);
23683
23684static struct platform_driver msm_routing_pcm_driver = {
23685 .driver = {
23686 .name = "msm-pcm-routing",
23687 .owner = THIS_MODULE,
23688 .of_match_table = msm_pcm_routing_dt_match,
23689 },
23690 .probe = msm_routing_pcm_probe,
23691 .remove = msm_routing_pcm_remove,
23692};
23693
23694int msm_routing_check_backend_enabled(int fedai_id)
23695{
23696 int i;
23697
23698 if (fedai_id > MSM_FRONTEND_DAI_MM_MAX_ID) {
23699 /* bad ID assigned in machine driver */
23700 pr_err("%s: bad MM ID\n", __func__);
23701 return 0;
23702 }
23703 for (i = 0; i < MSM_BACKEND_DAI_MAX; i++) {
23704 if (test_bit(fedai_id, &msm_bedais[i].fe_sessions[0]))
23705 return msm_bedais[i].active;
23706 }
23707 return 0;
23708}
23709
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023710static int get_cal_type_index(int32_t cal_type)
23711{
23712 int ret = -EINVAL;
23713
23714 switch (cal_type) {
23715 case ADM_TOPOLOGY_CAL_TYPE:
23716 ret = ADM_TOPOLOGY_CAL_TYPE_IDX;
23717 break;
23718 case ADM_LSM_TOPOLOGY_CAL_TYPE:
23719 ret = ADM_LSM_TOPOLOGY_CAL_TYPE_IDX;
23720 break;
23721 default:
23722 pr_err("%s: Invalid cal type %d\n", __func__, cal_type);
23723 }
23724 return ret;
23725}
23726
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023727static int msm_routing_set_cal(int32_t cal_type,
23728 size_t data_size, void *data)
23729{
23730 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023731 int cal_index;
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023732 pr_debug("%s\n", __func__);
23733
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023734 cal_index = get_cal_type_index(cal_type);
23735 if (cal_index < 0) {
23736 pr_err("%s: Could not get cal index %d\n",
23737 __func__, cal_index);
23738 ret = -EINVAL;
23739 goto done;
23740 }
23741
23742 ret = cal_utils_set_cal(data_size, data, cal_data[cal_index], 0, NULL);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023743 if (ret < 0) {
23744 pr_err("%s: cal_utils_set_cal failed, ret = %d, cal type = %d!\n",
23745 __func__, ret, cal_type);
23746 ret = -EINVAL;
23747 goto done;
23748 }
Vikram Panduranga6e55ad82018-03-14 13:56:18 -070023749 /* Pre-load if it is ADM topology */
23750 if ((cal_index == ADM_TOPOLOGY_CAL_TYPE_IDX) ||
23751 (cal_index == ADM_LSM_TOPOLOGY_CAL_TYPE_IDX)) {
23752 msm_routing_load_topology(data_size, data);
23753 }
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023754done:
23755 return ret;
23756}
23757
23758static void msm_routing_delete_cal_data(void)
23759{
23760 pr_debug("%s\n", __func__);
23761
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023762 cal_utils_destroy_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023763}
23764
23765static int msm_routing_init_cal_data(void)
23766{
23767 int ret = 0;
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023768 struct cal_type_info cal_type_info[] = {
23769 {{ADM_TOPOLOGY_CAL_TYPE,
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023770 {NULL, NULL, NULL,
23771 msm_routing_set_cal, NULL, NULL} },
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023772 {NULL, NULL, cal_utils_match_buf_num} },
23773
23774 {{ADM_LSM_TOPOLOGY_CAL_TYPE,
23775 {NULL, NULL, NULL,
23776 msm_routing_set_cal, NULL, NULL} },
23777 {NULL, NULL, cal_utils_match_buf_num} },
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023778 };
23779 pr_debug("%s\n", __func__);
23780
Aditya Bavanari2a627ae2017-11-21 20:24:53 +053023781 ret = cal_utils_create_cal_types(MAX_ROUTING_CAL_TYPES, &cal_data[0],
23782 &cal_type_info[0]);
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023783 if (ret < 0) {
23784 pr_err("%s: could not create cal type!\n",
23785 __func__);
23786 ret = -EINVAL;
23787 goto err;
23788 }
23789
23790 return ret;
23791err:
23792 msm_routing_delete_cal_data();
23793 return ret;
23794}
23795
Laxminath Kasam8b1366a2017-10-05 01:44:16 +053023796int __init msm_soc_routing_platform_init(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023797{
23798 mutex_init(&routing_lock);
23799 if (msm_routing_init_cal_data())
23800 pr_err("%s: could not init cal data!\n", __func__);
23801
23802 afe_set_routing_callback(
23803 (routing_cb)msm_pcm_get_dev_acdb_id_by_port_id);
23804
23805 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23806 memset(&last_be_id_configured, 0, sizeof(last_be_id_configured));
23807
23808 return platform_driver_register(&msm_routing_pcm_driver);
23809}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023810
Asish Bhattacharya5faacb32017-12-04 17:23:15 +053023811void msm_soc_routing_platform_exit(void)
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023812{
23813 msm_routing_delete_cal_data();
23814 memset(&be_dai_name_table, 0, sizeof(be_dai_name_table));
23815 mutex_destroy(&routing_lock);
23816 platform_driver_unregister(&msm_routing_pcm_driver);
23817}
Asish Bhattacharya8e2277f2017-07-20 18:31:55 +053023818
23819MODULE_DESCRIPTION("MSM routing platform driver");
23820MODULE_LICENSE("GPL v2");