Merge "asoc: Add Rx swr master port config for scuba target"

This commit is contained in:
qctecmdr 2020-06-01 10:27:00 -07:00 • committed by Gerrit - the friendly Code Review server
commit 178111f453
2 changed files with 50 additions and 3 deletions

View file

@ -1,6 +1,6 @@
/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
* Copyright (c) 2018-2020, The Linux Foundation. All rights reserved.
*/
#ifndef _BENGAL_PORT_CONFIG
@ -21,6 +21,15 @@ static struct port_params rx_frame_params_default[SWR_MSTR_PORT_LEN] = {
{0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0},
};
static struct port_params rx_frame_params_rouleur[SWR_MSTR_PORT_LEN] = {
{3, 0, 0, 0xFF, 0xFF, 1, 0xFF, 0xFF, 1},
{31, 0, 0, 3, 6, 7, 0, 0xFF, 0},
{31, 1, 0, 0xFF, 0xFF, 4, 1, 0xFF, 0},
{7, 1, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0},
{0, 0, 0, 0xFF, 0xFF, 0xFF, 0xFF, 0, 0},
};
static struct port_params rx_frame_params_dsd[SWR_MSTR_PORT_LEN] = {
{3, 0, 0, 0xFF, 0xFF, 1, 0xFF, 0xFF, 1},
{31, 0, 0, 3, 6, 7, 0, 0xFF, 0},
@ -42,4 +51,9 @@ static struct swr_mstr_port_map sm_port_map[] = {
{RX_MACRO, SWR_UC1, rx_frame_params_dsd},
};
static struct swr_mstr_port_map sm_port_map_rouleur[] = {
{VA_MACRO, SWR_UC0, tx_frame_params_default},
{RX_MACRO, SWR_UC0, rx_frame_params_rouleur},
{RX_MACRO, SWR_UC1, rx_frame_params_dsd},
};
#endif /* _BENGAL_PORT_CONFIG */

View file

@ -4259,6 +4259,9 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
struct snd_soc_dapm_context *dapm;
struct snd_card *card;
struct snd_info_entry *entry;
struct platform_device *pdev = NULL;
int i = 0;
char *data = NULL;
struct msm_asoc_mach_data *pdata =
snd_soc_card_get_drvdata(rtd->card);
@ -4305,8 +4308,38 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
snd_soc_dapm_sync(dapm);
bolero_set_port_map(component, ARRAY_SIZE(sm_port_map),
sm_port_map);
for (i = 0; i < rtd->card->num_aux_devs; i++)
{
if (msm_aux_dev[i].name != NULL ) {
if (strstr(msm_aux_dev[i].name, "wsa"))
continue;
}
if (msm_aux_dev[i].codec_of_node) {
pdev = of_find_device_by_node(
msm_aux_dev[i].codec_of_node);
if (pdev)
data = (char*) of_device_get_match_data(
&pdev->dev);
if (data != NULL) {
if (!strncmp(data, "wcd937x",
sizeof("wcd937x"))) {
bolero_set_port_map(component,
ARRAY_SIZE(sm_port_map),
sm_port_map);
break;
} else if (!strncmp( data, "rouleur",
sizeof("rouleur"))) {
bolero_set_port_map(component,
ARRAY_SIZE(sm_port_map_rouleur),
sm_port_map_rouleur);
break;
}
}
}
}
card = rtd->card->snd_card;
if (!pdata->codec_root) {
entry = snd_info_create_subdir(card->module, "codecs",