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

Commit c9127aa9 authored by Ashish Jain's avatar Ashish Jain Committed by Chaithanya Krishna Bacharaju
Browse files

ASoC: msm: qdsp6v2: Add INT3 Tx port for LSM



Add INT3 Tx port for LSM to support detections in
cases where this port is used.

Change-Id: Ifddd0dce0b62a352ee10fad9d11b2e83b2d5f902
Signed-off-by: default avatarChaithanya Krishna Bacharaju <chaithan@codeaurora.org>
parent 2e47ba9a
Loading
Loading
Loading
Loading
+55 −13
Original line number Diff line number Diff line
@@ -103,12 +103,15 @@ enum {
#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
#define ADM_LSM_TX_TEXT "ADM_LSM_TX"
#define INT3_MI2S_TX_TEXT "INT3_MI2S_TX"
#define LSM_FUNCTION_TEXT "LSM Function"
static const char * const lsm_port_text[] = {
	"None",
	SLIMBUS_0_TX_TEXT, SLIMBUS_1_TX_TEXT, SLIMBUS_2_TX_TEXT,
	SLIMBUS_3_TX_TEXT, SLIMBUS_4_TX_TEXT, SLIMBUS_5_TX_TEXT,
	TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT
	TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT, ADM_LSM_TX_TEXT,
	INT3_MI2S_TX_TEXT, SLIMBUS_TX_VI_TEXT
};
struct msm_pcm_route_bdai_pp_params {
@@ -2186,6 +2189,9 @@ static int msm_routing_lsm_port_put(struct snd_kcontrol *kcontrol,
	case 9:
		lsm_port = ADM_LSM_PORT_ID;
		break;
	case 10:
		lsm_port = AFE_PORT_ID_INT3_MI2S_TX;
		break;
	default:
		pr_err("Default lsm port");
		break;
@@ -2214,17 +2220,21 @@ static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
		return -EINVAL;
	}
	/*Check for Tertiary TX port*/
	if (!strcmp(kcontrol->id.name, lsm_port_text[7])) {
		ucontrol->value.integer.value[0] = MADSWAUDIO;
		return 0;
	}
	port_id = i * 2 + 1 + SLIMBUS_0_RX;
	if (!strcmp(kcontrol->id.name, lsm_port_text[8]))
	/*Check for Tertiary/Quaternary/INT3 TX port*/
	if (strnstr(kcontrol->id.name, lsm_port_text[7],
			strlen(lsm_port_text[7])))
		port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
	if (strnstr(kcontrol->id.name, lsm_port_text[8],
			strlen(lsm_port_text[8])))
		port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
	if (strnstr(kcontrol->id.name, lsm_port_text[10],
			strlen(lsm_port_text[10])))
		port_id = AFE_PORT_ID_INT3_MI2S_TX;
	mad_type = afe_port_get_mad_type(port_id);
	pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
		 mad_type);
@@ -2291,17 +2301,19 @@ static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
		return -EINVAL;
	}
	/*Check for Tertiary TX port*/
	/*Check for Tertiary/Quaternary/INT3 TX port*/
	if (strnstr(kcontrol->id.name, lsm_port_text[7],
			strlen(lsm_port_text[7]))) {
			strlen(lsm_port_text[7])))
		port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
		mad_type = MAD_SW_AUDIO;
	}
	if (strnstr(kcontrol->id.name, lsm_port_text[8],
			strlen(lsm_port_text[8])))
		port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;
	if (strnstr(kcontrol->id.name, lsm_port_text[10],
			strlen(lsm_port_text[10])))
		port_id = AFE_PORT_ID_INT3_MI2S_TX;
	pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
		 mad_type);
	return afe_port_set_mad_type(port_id, mad_type);
@@ -8094,6 +8106,9 @@ static const struct snd_kcontrol_new lsm1_mixer_controls[] = {
	SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
		MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
	SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
		MSM_FRONTEND_DAI_LSM1, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
};
static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
@@ -8118,6 +8133,9 @@ static const struct snd_kcontrol_new lsm2_mixer_controls[] = {
	SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
		MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
	SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
		MSM_FRONTEND_DAI_LSM2, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
};
static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
@@ -8142,6 +8160,9 @@ static const struct snd_kcontrol_new lsm3_mixer_controls[] = {
	SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
		MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
	SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
		MSM_FRONTEND_DAI_LSM3, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
};
static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
@@ -8166,6 +8187,9 @@ static const struct snd_kcontrol_new lsm4_mixer_controls[] = {
	SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
		MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
	SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
		MSM_FRONTEND_DAI_LSM4, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
};
static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
@@ -8190,6 +8214,9 @@ static const struct snd_kcontrol_new lsm5_mixer_controls[] = {
	SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
		MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
	SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
		MSM_FRONTEND_DAI_LSM5, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
};
static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
@@ -8214,6 +8241,9 @@ static const struct snd_kcontrol_new lsm6_mixer_controls[] = {
	SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
		MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
	SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
		MSM_FRONTEND_DAI_LSM6, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
};
static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
@@ -8238,6 +8268,9 @@ static const struct snd_kcontrol_new lsm7_mixer_controls[] = {
	SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
		MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
	SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
		MSM_FRONTEND_DAI_LSM7, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
};
static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
@@ -8262,6 +8295,9 @@ static const struct snd_kcontrol_new lsm8_mixer_controls[] = {
	SOC_SINGLE_EXT("QUAT_MI2S_TX", MSM_BACKEND_DAI_QUATERNARY_MI2S_TX,
		MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
	SOC_SINGLE_EXT("INT3_MI2S_TX", MSM_BACKEND_DAI_INT3_MI2S_TX,
		MSM_FRONTEND_DAI_LSM8, 1, 0, msm_routing_get_listen_mixer,
		msm_routing_put_listen_mixer),
};
static const struct snd_kcontrol_new slim_fm_switch_mixer_controls =
@@ -8376,6 +8412,8 @@ static const struct snd_kcontrol_new lsm_controls[] = {
		    msm_routing_lsm_func_get, msm_routing_lsm_func_put),
	SOC_ENUM_EXT(QUAT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
		    msm_routing_lsm_func_get, msm_routing_lsm_func_put),
	SOC_ENUM_EXT(INT3_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
		    msm_routing_lsm_func_get, msm_routing_lsm_func_put),
	/* kcontrol of lsm_port */
	SOC_ENUM_EXT("LSM1 Port", lsm_port_enum,
			  msm_routing_lsm_port_get,
@@ -11704,7 +11742,6 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"SLIM4_UL_HL", NULL, "SLIMBUS_4_TX"},
	{"SLIM8_UL_HL", NULL, "SLIMBUS_8_TX"},
	{"LSM1 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
	{"LSM1 Mixer", "SLIMBUS_1_TX", "SLIMBUS_1_TX"},
	{"LSM1 Mixer", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
@@ -11712,6 +11749,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM1 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM1 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM1 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM1 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
	{"LSM1_UL_HL", NULL, "LSM1 Mixer"},
	{"LSM2 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@@ -11721,6 +11759,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM2 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM2 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM2 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM2 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
	{"LSM2_UL_HL", NULL, "LSM2 Mixer"},
@@ -11731,6 +11770,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM3 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM3 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM3 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM3 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
	{"LSM3_UL_HL", NULL, "LSM3 Mixer"},
@@ -11741,6 +11781,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM4 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM4 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM4 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM4 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
	{"LSM4_UL_HL", NULL, "LSM4 Mixer"},
	{"LSM5 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@@ -11750,6 +11791,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM5 Mixer", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM5 Mixer", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM5 Mixer", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM5 Mixer", "INT3_MI2S_TX", "INT3_MI2S_TX"},
	{"LSM5_UL_HL", NULL, "LSM5 Mixer"},
	{"LSM6 Mixer", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
+4 −2
Original line number Diff line number Diff line
@@ -1929,7 +1929,8 @@ int afe_port_set_mad_type(u16 port_id, enum afe_mad_type mad_type)
{
	int i;

	if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX) {
	if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX ||
		port_id == AFE_PORT_ID_INT3_MI2S_TX) {
		mad_type = MAD_SW_AUDIO;
		return 0;
	}
@@ -1947,7 +1948,8 @@ enum afe_mad_type afe_port_get_mad_type(u16 port_id)
{
	int i;

	if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX)
	if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX ||
		port_id == AFE_PORT_ID_INT3_MI2S_TX)
		return MAD_SW_AUDIO;

	i = port_id - SLIMBUS_0_RX;