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

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

Merge "ASoC: qdsp6v2: Avoid sending afe cal for proxy ports"

parents 0472f983 581ed934
Loading
Loading
Loading
Loading
+47 −21
Original line number Diff line number Diff line
@@ -1429,7 +1429,7 @@ static inline void msm_dai_q6_set_dai_id(struct snd_soc_dai *dai)
	return;
}

static int msm_dai_q6_sb_cal_info_put(struct snd_kcontrol *kcontrol,
static int msm_dai_q6_cal_info_put(struct snd_kcontrol *kcontrol,
				    struct snd_ctl_elem_value *ucontrol)
{
	struct msm_dai_q6_dai_data *dai_data = kcontrol->private_data;
@@ -1444,7 +1444,7 @@ static int msm_dai_q6_sb_cal_info_put(struct snd_kcontrol *kcontrol,
	return 0;
}

static int msm_dai_q6_sb_cal_info_get(struct snd_kcontrol *kcontrol,
static int msm_dai_q6_cal_info_get(struct snd_kcontrol *kcontrol,
				    struct snd_ctl_elem_value *ucontrol)
{
	struct msm_dai_q6_dai_data *dai_data = kcontrol->private_data;
@@ -1479,21 +1479,38 @@ static int msm_dai_q6_sb_format_get(struct snd_kcontrol *kcontrol,
	return 0;
}

static const char * const slim_2_rx_text[] = {
static const char * const afe_cal_mode_text[] = {
	"CAL_MODE_DEFAULT", "CAL_MODE_NONE"
};

static const struct soc_enum slim_2_rx_enum =
	SOC_ENUM_SINGLE(SLIMBUS_2_RX, 0, ARRAY_SIZE(slim_2_rx_text),
			slim_2_rx_text);
	SOC_ENUM_SINGLE(SLIMBUS_2_RX, 0, ARRAY_SIZE(afe_cal_mode_text),
			afe_cal_mode_text);

static const struct soc_enum rt_proxy_1_rx_enum =
	SOC_ENUM_SINGLE(RT_PROXY_PORT_001_RX, 0, ARRAY_SIZE(afe_cal_mode_text),
			afe_cal_mode_text);

static const struct soc_enum rt_proxy_1_tx_enum =
	SOC_ENUM_SINGLE(RT_PROXY_PORT_001_TX, 0, ARRAY_SIZE(afe_cal_mode_text),
			afe_cal_mode_text);

static const struct snd_kcontrol_new sb_config_controls[] = {
	SOC_ENUM_EXT("SLIM_4_TX Format", sb_config_enum[0],
		     msm_dai_q6_sb_format_get,
		     msm_dai_q6_sb_format_put),
	SOC_ENUM_EXT("SLIM_2_RX SetCalMode", slim_2_rx_enum,
		     msm_dai_q6_sb_cal_info_get,
		     msm_dai_q6_sb_cal_info_put)
		     msm_dai_q6_cal_info_get,
		     msm_dai_q6_cal_info_put)
};

static const struct snd_kcontrol_new rt_proxy_config_controls[] = {
	SOC_ENUM_EXT("RT_PROXY_1_RX SetCalMode", rt_proxy_1_rx_enum,
		     msm_dai_q6_cal_info_get,
		     msm_dai_q6_cal_info_put),
	SOC_ENUM_EXT("RT_PROXY_1_TX SetCalMode", rt_proxy_1_tx_enum,
		     msm_dai_q6_cal_info_get,
		     msm_dai_q6_cal_info_put),
};

static int msm_dai_q6_dai_probe(struct snd_soc_dai *dai)
@@ -1521,23 +1538,32 @@ static int msm_dai_q6_dai_probe(struct snd_soc_dai *dai)

	msm_dai_q6_set_dai_id(dai);

	if (dai->id == SLIMBUS_4_TX) {
	switch (dai->id) {
	case SLIMBUS_4_TX:
		rc = snd_ctl_add(dai->card->snd_card,
				 snd_ctl_new1(&sb_config_controls[0],
				 dai_data));
		if (IS_ERR_VALUE(rc)) {
			dev_err(dai->dev, "%s: err add TX format ctl DAI = %s\n",
				__func__, dai->name);
		}
	}
	if (dai->id == SLIMBUS_2_RX) {
		break;
	case SLIMBUS_2_RX:
		rc = snd_ctl_add(dai->card->snd_card,
				 snd_ctl_new1(&sb_config_controls[1],
				 dai_data));
		break;
	case RT_PROXY_DAI_001_RX:
		rc = snd_ctl_add(dai->card->snd_card,
				 snd_ctl_new1(&rt_proxy_config_controls[0],
				 dai_data));
		break;
	case RT_PROXY_DAI_001_TX:
		rc = snd_ctl_add(dai->card->snd_card,
				 snd_ctl_new1(&rt_proxy_config_controls[1],
				 dai_data));
		break;
	}
	if (IS_ERR_VALUE(rc))
			dev_err(dai->dev, "%s: err add RX Cal ctl, DAI = %s\n",
		dev_err(dai->dev, "%s: err add config ctl, DAI = %s\n",
			__func__, dai->name);
	}

	rc = msm_dai_q6_dai_add_route(dai);
	return rc;
}
+1 −2
Original line number Diff line number Diff line
@@ -2064,10 +2064,9 @@ int afe_port_start(u16 port_id, union afe_port_config *afe_config,
		/* One time call: only for first time */
		afe_send_custom_topology();
		afe_send_port_topology_id(port_id);

		afe_send_cal(port_id);
	}
		afe_send_hw_delay(port_id, rate);
	}

	/* Start SW MAD module */
	mad_type = afe_port_get_mad_type(port_id);