Skip to content

Commit

Permalink
ASoC: tlv320dac33: BCLK divider fix
Browse files Browse the repository at this point in the history
The BCLK divider was not configured in case of mode7.
This leads to unpredictable behavior when switching between FIFO modes.
Configure the BCLK divider depending on the fifo_mode (FIFO is in use,
or FIFO bypass).

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@nokia.com>
Acked-by: Liam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
  • Loading branch information
Peter Ujfalusi authored and Mark Brown committed Jan 20, 2010
1 parent 84740ac commit 6cd6ced
Showing 1 changed file with 6 additions and 5 deletions.
11 changes: 6 additions & 5 deletions sound/soc/codecs/tlv320dac33.c
Original file line number Diff line number Diff line change
Expand Up @@ -845,11 +845,14 @@ static int dac33_prepare_chip(struct snd_pcm_substream *substream)
dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_A, aictrl_a);
dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_B, aictrl_b);

switch (dac33->fifo_mode) {
case DAC33_FIFO_MODE1:
/* 20: BCLK divide ratio */
/* BCLK divide ratio */
if (dac33->fifo_mode)
dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_C, 3);
else
dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_C, 32);

switch (dac33->fifo_mode) {
case DAC33_FIFO_MODE1:
dac33_write16(codec, DAC33_ATHR_MSB,
DAC33_THRREG(dac33->alarm_threshold));
break;
Expand All @@ -864,8 +867,6 @@ static int dac33_prepare_chip(struct snd_pcm_substream *substream)
DAC33_THRREG(10));
break;
default:
/* BYPASS mode */
dac33_write(codec, DAC33_SER_AUDIOIF_CTRL_C, 32);
break;
}

Expand Down

0 comments on commit 6cd6ced

Please sign in to comment.