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

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

Merge "ASoC: apq8009: separate bits_per_sample for TX and RX path"

parents e11bce4c 1d052bad
Loading
Loading
Loading
Loading
+20 −9
Original line number Diff line number Diff line
@@ -188,7 +188,8 @@ static struct afe_clk_set mi2s_rx_clk = {

static int mi2s_rx_bit_format = SNDRV_PCM_FORMAT_S16_LE;
static int mi2s_tx_bit_format = SNDRV_PCM_FORMAT_S16_LE;
static int bits_per_sample = 16;
static int rx_bits_per_sample = 16;
static int tx_bits_per_sample = 16;

static inline int param_is_mask(int p)
{
@@ -371,18 +372,23 @@ static int mi2s_rx_bit_format_put(struct snd_kcontrol *kcontrol,
	switch (ucontrol->value.integer.value[0]) {
	case 2:
		mi2s_rx_bit_format = SNDRV_PCM_FORMAT_S24_LE;
		bits_per_sample = 32;
		rx_bits_per_sample = 32;
		break;
	case 1:
		mi2s_rx_bit_format = SNDRV_PCM_FORMAT_S24_3LE;
		bits_per_sample = 32;
		rx_bits_per_sample = 32;
		break;
	case 0:
	default:
		mi2s_rx_bit_format = SNDRV_PCM_FORMAT_S16_LE;
		bits_per_sample = 16;
		rx_bits_per_sample = 16;
		break;
	}

	pr_debug("%s: mi2s_rx_bit_format = %d, ucontrol value = %ld\n",
			__func__, mi2s_rx_bit_format,
			ucontrol->value.integer.value[0]);

	return 0;
}

@@ -418,18 +424,23 @@ static int mi2s_tx_bit_format_put(struct snd_kcontrol *kcontrol,
	switch (ucontrol->value.integer.value[0]) {
	case 2:
		mi2s_tx_bit_format = SNDRV_PCM_FORMAT_S24_LE;
		bits_per_sample = 32;
		tx_bits_per_sample = 32;
		break;
	case 1:
		mi2s_tx_bit_format = SNDRV_PCM_FORMAT_S24_3LE;
		bits_per_sample = 32;
		tx_bits_per_sample = 32;
		break;
	case 0:
	default:
		mi2s_tx_bit_format = SNDRV_PCM_FORMAT_S16_LE;
		bits_per_sample = 16;
		tx_bits_per_sample = 16;
		break;
	}

	pr_debug("%s: mi2s_tx_bit_format = %d, ucontrol value = %ld\n",
			__func__, mi2s_tx_bit_format,
			ucontrol->value.integer.value[0]);

	return 0;
}

@@ -660,7 +671,7 @@ static uint32_t get_mi2s_rx_clk_val(void)
{
	uint32_t clk_val;

	clk_val = pri_rx_sample_rate * bits_per_sample * 2;
	clk_val = pri_rx_sample_rate * rx_bits_per_sample * 2;

	return clk_val;
}
@@ -669,7 +680,7 @@ static uint32_t get_mi2s_tx_clk_val(void)
{
	uint32_t clk_val;

	clk_val = pri_tx_sample_rate * bits_per_sample * 2;
	clk_val = pri_tx_sample_rate * tx_bits_per_sample * 2;

	return clk_val;
}