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

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

Merge "ASoC: msm8976: support multichannel playback over proxy port"

parents b8aeac3e 2385e468
Loading
Loading
Loading
Loading
+23 −0
Original line number Diff line number Diff line
@@ -884,6 +884,24 @@ static int msm_btsco_rate_put(struct snd_kcontrol *kcontrol,
	return 0;
}

static int msm_proxy_rx_ch_get(struct snd_kcontrol *kcontrol,
				struct snd_ctl_elem_value *ucontrol)
{
	pr_debug("%s: msm_proxy_rx_ch = %d\n", __func__,
						msm_proxy_rx_ch);
	ucontrol->value.integer.value[0] = msm_proxy_rx_ch - 1;
	return 0;
}

static int msm_proxy_rx_ch_put(struct snd_kcontrol *kcontrol,
				struct snd_ctl_elem_value *ucontrol)
{
	msm_proxy_rx_ch = ucontrol->value.integer.value[0] + 1;
	pr_debug("%s: msm_proxy_rx_ch = %d\n", __func__,
						msm_proxy_rx_ch);
	return 1;
}

static const char *const spk_function[] = {"Off", "On"};
static const char *const slim0_rx_ch_text[] = {"One", "Two"};
static const char *const slim0_tx_ch_text[] = {"One", "Two", "Three", "Four",
@@ -897,6 +915,8 @@ static const char *const slim5_rx_ch_text[] = {"One", "Two"};
static char const *slim5_rx_sample_rate_text[] = {"KHZ_48", "KHZ_96",
	"KHZ_192", "KHZ_44P1"};
static char const *slim5_rx_bit_format_text[] = {"S16_LE", "S24_LE"};
static const char *const proxy_rx_ch_text[] = {"One", "Two", "Three", "Four",
	"Five", "Six", "Seven", "Eight"};

static const struct soc_enum msm_snd_enum[] = {
	SOC_ENUM_SINGLE_EXT(2, spk_function),
@@ -908,6 +928,7 @@ static const struct soc_enum msm_snd_enum[] = {
	SOC_ENUM_SINGLE_EXT(4, slim5_rx_sample_rate_text),
	SOC_ENUM_SINGLE_EXT(2, slim5_rx_bit_format_text),
	SOC_ENUM_SINGLE_EXT(2, slim5_rx_ch_text),
	SOC_ENUM_SINGLE_EXT(8, proxy_rx_ch_text),
};

static const char *const btsco_rate_text[] = {"BTSCO_RATE_8KHZ",
@@ -945,6 +966,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("PROXY_RX Channels", msm_snd_enum[9],
			msm_proxy_rx_ch_get, msm_proxy_rx_ch_put),
};

int msm_be_hw_params_fixup(struct snd_soc_pcm_runtime *rtd,