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

Commit 1bc13b2e authored by Peter Ujfalusi's avatar Peter Ujfalusi Committed by Liam Girdwood
Browse files

ASoC: tlv320dac33: Mode1 FIFO auto configuration fix



Do not allow invalid (too big) nSample value, when FIFO Mode1
and automatic fifo configuration has been selected.

Signed-off-by: default avatarPeter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
parent d54e1f4f
Loading
Loading
Loading
Loading
+6 −2
Original line number Diff line number Diff line
@@ -1082,6 +1082,9 @@ static void dac33_calculate_times(struct snd_pcm_substream *substream)
		/* Number of samples under i2c latency */
		dac33->alarm_threshold = US_TO_SAMPLES(rate,
						dac33->mode1_latency);
		nsample_limit = DAC33_BUFFER_SIZE_SAMPLES -
				dac33->alarm_threshold;

		if (dac33->auto_fifo_config) {
			if (period_size <= dac33->alarm_threshold)
				/*
@@ -1092,6 +1095,8 @@ static void dac33_calculate_times(struct snd_pcm_substream *substream)
				       ((dac33->alarm_threshold / period_size) +
				       (dac33->alarm_threshold % period_size ?
				       1 : 0));
			else if (period_size > nsample_limit)
				dac33->nsample = nsample_limit;
			else
				dac33->nsample = period_size;
		} else {
@@ -1103,8 +1108,7 @@ static void dac33_calculate_times(struct snd_pcm_substream *substream)
			 */
			dac33->nsample_max = substream->runtime->buffer_size -
						period_size;
			nsample_limit = DAC33_BUFFER_SIZE_SAMPLES -
					dac33->alarm_threshold;

			if (dac33->nsample_max > nsample_limit)
				dac33->nsample_max = nsample_limit;