commit: http://blackfin.uclinux.org/git/?p=linux-kernel;a=commitdiff;h=132bf51c9820cd36c781448ba5b671216f3a1711
branch: http://blackfin.uclinux.org/git/?p=linux-kernel;a=shortlog;h=refs/heads/trunk-next

Signed-off-by: Lars-Peter Clausen <[email protected]>
Acked-by: Liam Girdwood <[email protected]>
Signed-off-by: Mark Brown <[email protected]>
Cc: [email protected]
---
 sound/soc/codecs/ad183x.c |   15 ++++++++-------
 sound/soc/codecs/ad183x.h |    6 ++++++
 2 files changed, 14 insertions(+), 7 deletions(-)

diff --git a/sound/soc/codecs/ad183x.c b/sound/soc/codecs/ad183x.c
index 4925b42..6253f7b 100644
--- a/sound/soc/codecs/ad183x.c
+++ b/sound/soc/codecs/ad183x.c
@@ -253,22 +253,23 @@ static int ad183x_hw_params(struct snd_pcm_substream *substream,
 	/* bit size */
 	switch (params_format(params)) {
 	case SNDRV_PCM_FORMAT_S16_LE:
-		word_len = 3;
+		word_len = AD183X_WORD_LEN_16;
 		break;
 	case SNDRV_PCM_FORMAT_S20_3LE:
-		word_len = 1;
+		word_len = AD183X_WORD_LEN_20;
 		break;
 	case SNDRV_PCM_FORMAT_S24_LE:
 	case SNDRV_PCM_FORMAT_S32_LE:
-		word_len = 0;
+		word_len = AD183X_WORD_LEN_24;
 		break;
 	}
 
-	snd_soc_update_bits(codec, AD183X_DAC_CTRL1,
-			AD183X_DAC_WORD_LEN_MASK, word_len);
+	snd_soc_update_bits(codec, AD183X_DAC_CTRL1, AD183X_DAC_WORD_LEN_MASK,
+		word_len << AD183X_DAC_WORD_LEN_OFFSET);
+
+	snd_soc_update_bits(codec, AD183X_ADC_CTRL2, AD183X_ADC_WORD_LEN_MASK,
+		word_len << AD183X_ADC_WORD_OFFSET);
 
-	snd_soc_update_bits(codec, AD183X_ADC_CTRL2,
-			AD183X_ADC_WORD_LEN_MASK, word_len);
 	return 0;
 }
 
diff --git a/sound/soc/codecs/ad183x.h b/sound/soc/codecs/ad183x.h
index f7af3db..e3f4fe6 100644
--- a/sound/soc/codecs/ad183x.h
+++ b/sound/soc/codecs/ad183x.h
@@ -15,6 +15,7 @@
 #define AD183X_DAC_SERFMT_PCK256       (0x4 << 5)
 #define AD183X_DAC_SERFMT_PCK128       (0x5 << 5)
 #define AD183X_DAC_WORD_LEN_MASK       0x18
+#define AD183X_DAC_WORD_LEN_OFFSET     3
 
 #define AD183X_DAC_CTRL2               1
 #define AD183X_DACL1_MUTE              0
@@ -45,6 +46,7 @@
 #define AD183X_ADCL2_MUTE               2
 #define AD183X_ADCR2_MUTE               3
 #define AD183X_ADC_WORD_LEN_MASK       0x30
+#define AD183X_ADC_WORD_OFFSET         5
 #define AD183X_ADC_SERFMT_MASK	       (7 << 6)
 #define AD183X_ADC_SERFMT_PCK256       (0x4 << 6)
 #define AD183X_ADC_SERFMT_PCK128       (0x5 << 6)
@@ -54,4 +56,8 @@
 
 #define AD183X_NUM_REGS                16
 
+#define AD183X_WORD_LEN_24 0x0
+#define AD183X_WORD_LEN_20 0x1
+#define AD183X_WORD_LEN_16 0x2
+
 #endif
_______________________________________________
Linux-kernel-commits mailing list
[email protected]
https://blackfin.uclinux.org/mailman/listinfo/linux-kernel-commits

Reply via email to