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

Commit ae2a7754 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: Add changes to support HFP call via AUXPCM"

parents 063b2cc6 c3adef02
Loading
Loading
Loading
Loading
+36 −1
Original line number Diff line number Diff line
@@ -1091,6 +1091,33 @@ static int msm_btsco_rate_put(struct snd_kcontrol *kcontrol,
	return 0;
}

static int msm_auxpcm_rate_get(struct snd_kcontrol *kcontrol,
				struct snd_ctl_elem_value *ucontrol)
{
	pr_debug("%s: msm_auxpcm_rate  = %d", __func__, msm8952_auxpcm_rate);
	ucontrol->value.integer.value[0] = msm8952_auxpcm_rate;
	return 0;
}

static int msm_auxpcm_rate_put(struct snd_kcontrol *kcontrol,
				struct snd_ctl_elem_value *ucontrol)
{
	switch (ucontrol->value.integer.value[0]) {
	case RATE_8KHZ_ID:
		msm8952_auxpcm_rate = SAMPLING_RATE_8KHZ;
		break;
	case RATE_16KHZ_ID:
		msm8952_auxpcm_rate = SAMPLING_RATE_16KHZ;
		break;
	default:
		msm8952_auxpcm_rate = SAMPLING_RATE_8KHZ;
		break;
	}

	pr_debug("%s: msm_auxpcm_rate = %d\n", __func__, msm8952_auxpcm_rate);
	return 0;
}

static int msm_proxy_rx_ch_get(struct snd_kcontrol *kcontrol,
				struct snd_ctl_elem_value *ucontrol)
{
@@ -1560,6 +1587,12 @@ static const struct soc_enum msm_btsco_enum[] = {
	SOC_ENUM_SINGLE_EXT(2, btsco_rate_text),
};

static const char *const auxpcm_rate_text[] = {"SAMPLING_RATE_8KHZ",
	"SAMPLING_RATE_16KHZ"};
static const struct soc_enum msm_auxpcm_enum[] = {
		SOC_ENUM_SINGLE_EXT(2, auxpcm_rate_text),
};

static const struct snd_kcontrol_new msm_snd_controls[] = {
	SOC_ENUM_EXT("Speaker Function", msm_snd_enum[0], msm8952_get_spk,
			msm8952_set_spk),
@@ -1595,6 +1628,8 @@ static const struct snd_kcontrol_new msm_snd_controls[] = {
			slim0_tx_bit_format_get, slim0_tx_bit_format_put),
	SOC_ENUM_EXT("Internal BTSCO SampleRate", msm_btsco_enum[0],
			msm_btsco_rate_get, msm_btsco_rate_put),
	SOC_ENUM_EXT("AUXPCM SampleRate", msm_auxpcm_enum[0],
			msm_auxpcm_rate_get, msm_auxpcm_rate_put),
	SOC_ENUM_EXT("PROXY_RX Channels", msm_snd_enum[9],
			msm_proxy_rx_ch_get, msm_proxy_rx_ch_put),
	SOC_ENUM_EXT("PRI_TDM_RX_0 Channels", msm_snd_enum[13],