Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3acbdc5f authored by Kunlei Zhang's avatar Kunlei Zhang Committed by Akhil Karuturi
Browse files

asoc: update tx frame config for soundwire port



Set correct tx frame config for soundwire port
using  wcd9375.

Change-Id: Icbefda65713338908e4d94935296ff30ac4e5f9c
Signed-off-by: default avatarKunlei Zhang <kunleiz@codeaurora.org>
parent e000435f
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3959,7 +3959,7 @@ static void wcd938x_unbind(struct device *dev)
}

static const struct of_device_id wcd938x_dt_match[] = {
	{ .compatible = "qcom,wcd938x-codec" },
	{ .compatible = "qcom,wcd938x-codec", .data = "wcd938x"},
	{}
};

+16 −1
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * Copyright (c) 2018-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2019-2020, The Linux Foundation. All rights reserved.
 */

#ifndef _KONA_PORT_CONFIG
@@ -59,6 +59,14 @@ static struct port_params tx_frame_params_v2[SWR_MSTR_PORT_LEN] = {
	{3,  0,  0,  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 2},  /* TX4 */
};

static struct port_params tx_frame_params_wcd937x[SWR_MSTR_PORT_LEN] = {
	{0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
	{3,  1,  0,  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0},
	{3,  2,  0,  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0},
	{3,  1,  0,  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0},
	{3,  0,  0,  0xFF, 0xFF, 0xFF, 0xFF, 0xFF, 0},
};

static struct swr_mstr_port_map sm_port_map[] = {
	{TX_MACRO, SWR_UC0, tx_frame_params_default},
	{RX_MACRO, SWR_UC0, rx_frame_params_default},
@@ -73,4 +81,11 @@ static struct swr_mstr_port_map sm_port_map_v2[] = {
	{WSA_MACRO, SWR_UC0, wsa_frame_params_default},
};

static struct swr_mstr_port_map sm_port_map_wcd937x[] = {
	{TX_MACRO, SWR_UC0, tx_frame_params_wcd937x},
	{RX_MACRO, SWR_UC0, rx_frame_params_default},
	{RX_MACRO, SWR_UC1, rx_frame_params_dsd},
	{WSA_MACRO, SWR_UC0, wsa_frame_params_default},
};

#endif /* _KONA_PORT_CONFIG */
+47 −10
Original line number Diff line number Diff line
@@ -5340,6 +5340,9 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
	struct snd_card *card;
	struct snd_info_entry *entry;
	struct snd_soc_component *aux_comp;
	struct platform_device *pdev = NULL;
	int i = 0;
	char *data = NULL;
	struct msm_asoc_mach_data *pdata =
				snd_soc_card_get_drvdata(rtd->card);

@@ -5412,18 +5415,52 @@ static int msm_int_audrx_init(struct snd_soc_pcm_runtime *rtd)
						WSA_MACRO_GAIN_OFFSET_M1P5_DB);
			}
		}
	}

	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_wcd937x),
						sm_port_map_wcd937x);
					break;
				} else if (!strncmp( data, "wcd938x",
							sizeof("wcd938x"))) {
					if (pdata->lito_v2_enabled) {
						/*
			 * Enable tx data line3 for saipan version v2 amd
			 * write corresponding lpi register.
						 * Enable tx data line3 for
						 * saipan version v2 and
						 * write corresponding
						 * lpi register.
						 */
			bolero_set_port_map(component, ARRAY_SIZE(sm_port_map_v2),
						bolero_set_port_map(component,
							ARRAY_SIZE(sm_port_map_v2),
							sm_port_map_v2);
					} else {
			bolero_set_port_map(component, ARRAY_SIZE(sm_port_map),
						bolero_set_port_map(component,
							ARRAY_SIZE(sm_port_map),
							sm_port_map);
					}
					break;
				}
			}
		}
	}

	card = rtd->card->snd_card;
	if (!pdata->codec_root) {
		entry = msm_snd_info_create_subdir(card->module, "codecs",