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

Commit 48b9c3db authored by Linux Build Service Account's avatar Linux Build Service Account Committed by Gerrit - the friendly Code Review server
Browse files

Merge "ASoC: msm: qdsp6v2: add Quat mi2s tx port id for MAD support"

parents 43d71f94 10b36128
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1034,6 +1034,7 @@ struct adm_cmd_connect_afe_port_v5 {
#define AFE_PORT_ID_TERTIARY_MI2S_TX        0x1005
#define AFE_PORT_ID_QUATERNARY_MI2S_RX      0x1006
#define AFE_PORT_ID_QUATERNARY_MI2S_TX      0x1007
#define MI2S_PORT_LAST AFE_PORT_ID_QUATERNARY_MI2S_TX
#define AUDIO_PORT_ID_I2S_RX				0x1008
#define AFE_PORT_ID_DIGITAL_MIC_TX          0x1009
#define AFE_PORT_ID_PRIMARY_PCM_RX          0x100A
+20 −1
Original line number Diff line number Diff line
@@ -82,12 +82,13 @@ enum {
#define SLIMBUS_4_TX_TEXT "SLIMBUS_4_TX"
#define SLIMBUS_5_TX_TEXT "SLIMBUS_5_TX"
#define TERT_MI2S_TX_TEXT "TERT_MI2S_TX"
#define QUAT_MI2S_TX_TEXT "QUAT_MI2S_TX"
#define LSM_FUNCTION_TEXT "LSM Function"
static const char * const mad_audio_mux_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
	TERT_MI2S_TX_TEXT, QUAT_MI2S_TX_TEXT
};

struct msm_pcm_route_bdai_pp_params {
@@ -1760,6 +1761,9 @@ static int msm_routing_lsm_mux_put(struct snd_kcontrol *kcontrol,
	case 7:
		lsm_port = AFE_PORT_ID_TERTIARY_MI2S_TX;
		break;
	case 8:
		lsm_port = AFE_PORT_ID_QUATERNARY_MI2S_TX;
		break;
	default:
		pr_err("Default lsm port");
		break;
@@ -1802,6 +1806,9 @@ static int msm_routing_lsm_func_get(struct snd_kcontrol *kcontrol,
	}

	port_id = i * 2 + 1 + SLIMBUS_0_RX;
	if (!strcmp(kcontrol->id.name, mad_audio_mux_text[8]))
		port_id = AFE_PORT_ID_QUATERNARY_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);
@@ -1873,6 +1880,8 @@ static int msm_routing_lsm_func_put(struct snd_kcontrol *kcontrol,
		port_id = AFE_PORT_ID_TERTIARY_MI2S_TX;
		mad_type = MAD_SW_AUDIO;
	}
	if (!strcmp(kcontrol->id.name, mad_audio_mux_text[8]))
		port_id = AFE_PORT_ID_QUATERNARY_MI2S_TX;

	pr_debug("%s: port_id 0x%x, mad_type %d\n", __func__, port_id,
		 mad_type);
@@ -5927,6 +5936,8 @@ static const struct snd_kcontrol_new lsm_function[] = {
		     msm_routing_lsm_func_get, msm_routing_lsm_func_put),
	SOC_ENUM_EXT(TERT_MI2S_TX_TEXT" "LSM_FUNCTION_TEXT, lsm_func_enum,
		    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),
};

static const char * const aanc_slim_0_rx_text[] = {
@@ -8592,6 +8603,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM1 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
	{"LSM1 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM1 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM1 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM1_UL_HL", NULL, "LSM1 MUX"},

	{"LSM2 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@@ -8600,6 +8612,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM2 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
	{"LSM2 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM2 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM2 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM2_UL_HL", NULL, "LSM2 MUX"},


@@ -8609,6 +8622,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM3 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
	{"LSM3 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM3 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM3 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM3_UL_HL", NULL, "LSM3 MUX"},


@@ -8618,6 +8632,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM4 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
	{"LSM4 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM4 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM4 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM4_UL_HL", NULL, "LSM4 MUX"},

	{"LSM5 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@@ -8626,6 +8641,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM5 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
	{"LSM5 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM5 MUX", "TERT_MI2S_TX", "TERT_MI2S_TX"},
	{"LSM5 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM5_UL_HL", NULL, "LSM5 MUX"},

	{"LSM6 MUX", "SLIMBUS_0_TX", "SLIMBUS_0_TX"},
@@ -8633,6 +8649,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM6 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
	{"LSM6 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
	{"LSM6 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM6 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM6_UL_HL", NULL, "LSM6 MUX"},


@@ -8641,6 +8658,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM7 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
	{"LSM7 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
	{"LSM7 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM7 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM7_UL_HL", NULL, "LSM7 MUX"},


@@ -8649,6 +8667,7 @@ static const struct snd_soc_dapm_route intercon[] = {
	{"LSM8 MUX", "SLIMBUS_3_TX", "SLIMBUS_3_TX"},
	{"LSM8 MUX", "SLIMBUS_4_TX", "SLIMBUS_4_TX"},
	{"LSM8 MUX", "SLIMBUS_5_TX", "SLIMBUS_5_TX"},
	{"LSM8 MUX", "QUAT_MI2S_TX", "QUAT_MI2S_TX"},
	{"LSM8_UL_HL", NULL, "LSM8 MUX"},


+16 −5
Original line number Diff line number Diff line
@@ -120,7 +120,12 @@ struct afe_ctl {
	int set_custom_topology;
};

static atomic_t afe_ports_mad_type[SLIMBUS_PORT_LAST - SLIMBUS_0_RX];
#define MAD_SLIMBUS_PORT_COUNT ((SLIMBUS_PORT_LAST - SLIMBUS_0_RX) + 1)
#define MAD_MI2S_PORT_COUNT ((MI2S_PORT_LAST - AFE_PORT_ID_PRIMARY_MI2S_TX) \
				+ 1)

static atomic_t afe_ports_mad_type[MAD_SLIMBUS_PORT_COUNT +
				MAD_MI2S_PORT_COUNT];
static unsigned long afe_configured_cmd;

static struct afe_ctl this_afe;
@@ -1892,7 +1897,10 @@ int afe_port_set_mad_type(u16 port_id, enum afe_mad_type mad_type)
		mad_type = MAD_SW_AUDIO;
		return 0;
	}

	if (port_id == AFE_PORT_ID_QUATERNARY_MI2S_TX)
		i = MAD_SLIMBUS_PORT_COUNT + (port_id -
				AFE_PORT_ID_PRIMARY_MI2S_TX) - 1;
	else
		i = port_id - SLIMBUS_0_RX;
	if (i < 0 || i >= ARRAY_SIZE(afe_ports_mad_type)) {
		pr_err("%s: Invalid port_id 0x%x\n", __func__, port_id);
@@ -1908,7 +1916,10 @@ enum afe_mad_type afe_port_get_mad_type(u16 port_id)

	if (port_id == AFE_PORT_ID_TERTIARY_MI2S_TX)
		return MAD_SW_AUDIO;

	if (port_id == AFE_PORT_ID_QUATERNARY_MI2S_TX)
		i = MAD_SLIMBUS_PORT_COUNT + (port_id -
			AFE_PORT_ID_PRIMARY_MI2S_TX) - 1;
	else
		i = port_id - SLIMBUS_0_RX;
	if (i < 0 || i >= ARRAY_SIZE(afe_ports_mad_type)) {
		pr_debug("%s: Non Slimbus port_id 0x%x\n", __func__, port_id);