Skip to contentSkip to conversation

ASoC: cs42l73: Unify the way to define bits of register

PATCH Applied Axel Lin 3 participants 5 messages Nov 18, 2011 – Nov 22, 2011

Subsystems (3)
lore
Share & tools
lore

Axel Lin

author
#0 lore raw

PATCH 1/2 ASoC: cs42l73: Unify the way to define bits of register

Current code defines some bits with left shift to the proper bit defined in datasheet, but some don't.
Unify the definition with proper left shift and adjust the code accordingly.

---
Hi,
I don't have this hardware handy.
I'd appreciate if someone can test this serial of patches.

Thanks
Axel

 sound/soc/codecs/cs42l73.c |    6 +++---
 sound/soc/codecs/cs42l73.h |   18 +++++++++---------
 2 files changed, 12 insertions(+), 12 deletions(-)
sound/soc/codecs/cs42l73.c +3 -3
index 6fe259a..0306e72 100644
@@ -1028,13 +1028,13 @@ static int cs42l73_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
 		switch (format) {
 		case SND_SOC_DAIFMT_DSP_B:
 			if (inv == SND_SOC_DAIFMT_IB_IF)
-				spc |= (PCM_MODE0 << 4);
+				spc |= PCM_MODE0;
 			if (inv == SND_SOC_DAIFMT_IB_NF)
-				spc |= (PCM_MODE1 << 4);
+				spc |= PCM_MODE1;
 		break;
 		case SND_SOC_DAIFMT_DSP_A:
 			if (inv == SND_SOC_DAIFMT_IB_IF)
-				spc |= (PCM_MODE1 << 4);
+				spc |= PCM_MODE1;
 			break;
 		default:
 			return -EINVAL;
sound/soc/codecs/cs42l73.h +9 -9
index 7c3bf7f..f30a4c4 100644
@@ -162,16 +162,16 @@
 
 /* CS42L73_ASPC, CS42L73_XSPC, CS42L73_VSPC */
 #define	SP_3ST			(1 << 7)
-#define SPDIF_I2S		0
+#define SPDIF_I2S		(0 << 6)
 #define SPDIF_PCM		(1 << 6)
-#define PCM_MODE0		0
-#define PCM_MODE1		1
-#define PCM_MODE2		2
-#define PCM_BO_MSBLSB		0
-#define PCM_BO_LSBMSB		1
-#define MCK_SCLK_64FS		0
-#define MCK_SCLK_MCLK		2
-#define MCK_SCLK_PREMCLK	3
+#define PCM_MODE0		(0 << 4)
+#define PCM_MODE1		(1 << 4)
+#define PCM_MODE2		(2 << 4)
+#define PCM_MODE_MASK		(3 << 4)
+#define PCM_BIT_ORDER		(1 << 3)
+#define MCK_SCLK_64FS		(0 << 0)
+#define MCK_SCLK_MCLK		(2 << 0)
+#define MCK_SCLK_PREMCLK	(3 << 0)
 
 /* CS42L73_xSPMMCC */
 #define MS_MASTER		(1 << 7)
Signature · 1 line
1.7.5.4
author
#1 lore raw

PATCH 2/2 ASoC: cs42l73: Fix clear wrong bits in cs42l73_set_dai_fmt

What we want is to clear BIT[5:4](PCM_MODE_MASK) and BIT[3](PCM_BIT_ORDER) bits, but current code clears BIT[2:0].

---
 sound/soc/codecs/cs42l73.c |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)
sound/soc/codecs/cs42l73.c +2 -1
index 0306e72..a2af595 100644
@@ -1024,7 +1024,8 @@ static int cs42l73_set_dai_fmt(struct snd_soc_dai *codec_dai, unsigned int fmt)
 	}
 
 	if (spc & SPDIF_PCM) {
-		spc &= (31 << 3);	/* Clear PCM mode, set MSB->LSB */
+		/* Clear PCM mode, clear PCM_BIT_ORDER bit for MSB->LSB */
+		spc &= ~(PCM_MODE_MASK | PCM_BIT_ORDER);
 		switch (format) {
 		case SND_SOC_DAIFMT_DSP_B:
 			if (inv == SND_SOC_DAIFMT_IB_IF)
Signature · 1 line
1.7.5.4
#2 lore raw
In reply to Axel Lin
Quoted 4 lines · Axel Lin

Current code defines some bits with left shift to the proper bit defined in datasheet, but some don't.
Unify the definition with proper left shift and adjust the code accordingly.

Quoted 8 lines

---
Hi,
I don't have this hardware handy.
I'd appreciate if someone can test this serial of patches.

Thanks
Axel

I'll try and verify this today. The changes looks fine though.

Thanks,
Brian

Acked-by on v1 1/2
#3 lore raw
In reply to Axel Lin
Quoted 4 lines · Axel Lin

Current code defines some bits with left shift to the proper bit defined in datasheet, but some don't.
Unify the definition with proper left shift and adjust the code accordingly.

Quoted 8 lines

---
Hi,
I don't have this hardware handy.
I'd appreciate if someone can test this serial of patches.

Thanks
Axel

Tested both and it works great. The style is much better too :) Thanks,

Applied
#4 lore raw
In reply to Axel Lin
Quoted 3 lines · Axel Lin

Current code defines some bits with left shift to the proper bit defined in datasheet, but some don't.
Unify the definition with proper left shift and adjust the code accordingly.

applied, thanks.